From bad0a24fa1a79dfe3fa30ab801f4c9821a6a1493 Mon Sep 17 00:00:00 2001 From: Hyunjee Kim Date: Thu, 31 Jan 2019 10:38:24 +0900 Subject: [PATCH] Imported Upstream version 3.3.0 Change-Id: I1daac9b3407149a3ffaf76132239ae6f014c8f09 Signed-off-by: Hyunjee Kim --- CHANGES.txt | 174 + MANIFEST.in | 5 +- Makefile | 2 +- PKG-INFO | 21 +- TODO.txt | 10 + buildlibxml.py | 25 +- doc/FAQ.txt | 4 +- doc/build.txt | 4 +- doc/html/FAQ.html | 8 +- doc/html/api.html | 4 +- doc/html/api/abc.ABCMeta-class.html | 2 +- doc/html/api/api-objects.txt | 125 +- doc/html/api/class-tree.html | 32 +- .../api/cssselect.parser.SelectorError-class.html | 2 +- ...cssselect.parser.SelectorSyntaxError-class.html | 2 +- .../api/cssselect.xpath.ExpressionError-class.html | 2 +- doc/html/api/cssselect.xpath.XPathExpr-class.html | 2 +- doc/html/api/deprecated-index.html | 2 +- doc/html/api/exceptions.AssertionError-class.html | 2 +- doc/html/api/help.html | 2 +- doc/html/api/identifier-index-A.html | 63 +- doc/html/api/identifier-index-B.html | 2 +- doc/html/api/identifier-index-C.html | 33 +- doc/html/api/identifier-index-D.html | 2 +- doc/html/api/identifier-index-E.html | 214 +- doc/html/api/identifier-index-F.html | 53 +- doc/html/api/identifier-index-G.html | 2 +- doc/html/api/identifier-index-H.html | 130 +- doc/html/api/identifier-index-I.html | 2 +- doc/html/api/identifier-index-J.html | 2 +- doc/html/api/identifier-index-K.html | 2 +- doc/html/api/identifier-index-L.html | 2 +- doc/html/api/identifier-index-M.html | 2 +- doc/html/api/identifier-index-N.html | 2 +- doc/html/api/identifier-index-O.html | 2 +- doc/html/api/identifier-index-P.html | 2 +- doc/html/api/identifier-index-Q.html | 2 +- doc/html/api/identifier-index-R.html | 335 +- doc/html/api/identifier-index-S.html | 2 +- doc/html/api/identifier-index-T.html | 2229 +- doc/html/api/identifier-index-U.html | 2 +- doc/html/api/identifier-index-V.html | 2 +- doc/html/api/identifier-index-W.html | 2 +- doc/html/api/identifier-index-X.html | 125 +- doc/html/api/identifier-index-Y.html | 2 +- doc/html/api/identifier-index-Z.html | 2 +- doc/html/api/identifier-index-_.html | 583 +- doc/html/api/identifier-index.html | 63 +- doc/html/api/lxml-module.html | 2 +- doc/html/api/lxml-pysrc.html | 2 +- doc/html/api/lxml.ElementInclude-module.html | 2 +- doc/html/api/lxml.ElementInclude-pysrc.html | 12 +- ...xml.ElementInclude.FatalIncludeError-class.html | 2 +- doc/html/api/lxml.builder-module.html | 2 +- doc/html/api/lxml.builder-pysrc.html | 10 +- doc/html/api/lxml.builder.ElementMaker-class.html | 2 +- doc/html/api/lxml.cssselect-module.html | 2 +- doc/html/api/lxml.cssselect-pysrc.html | 11 +- doc/html/api/lxml.cssselect.CSSSelector-class.html | 2 +- .../lxml.cssselect.LxmlHTMLTranslator-class.html | 2 +- .../api/lxml.cssselect.LxmlTranslator-class.html | 2 +- doc/html/api/lxml.doctestcompare-module.html | 2 +- doc/html/api/lxml.doctestcompare-pysrc.html | 17 +- ...ml.doctestcompare.LHTMLOutputChecker-class.html | 2 +- ...xml.doctestcompare.LXMLOutputChecker-class.html | 2 +- .../lxml.doctestcompare._RestoreChecker-class.html | 2 +- doc/html/api/lxml.etree-module.html | 56 +- .../api/lxml.etree.AncestorsIterator-class.html | 2 +- ...ree.AttributeBasedElementClassLookup-class.html | 2 +- doc/html/api/lxml.etree.C14NError-class.html | 2 +- doc/html/api/lxml.etree.CDATA-class.html | 12 +- doc/html/api/lxml.etree.CommentBase-class.html | 2 +- .../lxml.etree.CustomElementClassLookup-class.html | 2 +- doc/html/api/lxml.etree.DTD-class.html | 2 +- doc/html/api/lxml.etree.DTDError-class.html | 2 +- doc/html/api/lxml.etree.DTDParseError-class.html | 2 +- .../api/lxml.etree.DTDValidateError-class.html | 2 +- doc/html/api/lxml.etree.DocInfo-class.html | 2 +- doc/html/api/lxml.etree.DocumentInvalid-class.html | 2 +- .../api/lxml.etree.ETCompatXMLParser-class.html | 2 +- doc/html/api/lxml.etree.ETXPath-class.html | 2 +- doc/html/api/lxml.etree.ElementBase-class.html | 2 +- .../api/lxml.etree.ElementChildIterator-class.html | 2 +- .../api/lxml.etree.ElementClassLookup-class.html | 2 +- ...lxml.etree.ElementDefaultClassLookup-class.html | 2 +- ...lxml.etree.ElementDepthFirstIterator-class.html | 2 +- ...ml.etree.ElementNamespaceClassLookup-class.html | 2 +- .../api/lxml.etree.ElementTextIterator-class.html | 4 +- doc/html/api/lxml.etree.EntityBase-class.html | 2 +- doc/html/api/lxml.etree.Error-class.html | 2 +- doc/html/api/lxml.etree.ErrorDomains-class.html | 2 +- doc/html/api/lxml.etree.ErrorLevels-class.html | 2 +- doc/html/api/lxml.etree.ErrorTypes-class.html | 2 +- ...xml.etree.FallbackElementClassLookup-class.html | 2 +- doc/html/api/lxml.etree.HTMLParser-class.html | 4 +- doc/html/api/lxml.etree.HTMLPullParser-class.html | 348 + doc/html/api/lxml.etree.LxmlError-class.html | 2 +- .../api/lxml.etree.LxmlRegistryError-class.html | 2 +- doc/html/api/lxml.etree.LxmlSyntaxError-class.html | 2 +- .../lxml.etree.NamespaceRegistryError-class.html | 2 +- doc/html/api/lxml.etree.PIBase-class.html | 2 +- doc/html/api/lxml.etree.ParseError-class.html | 2 +- ....etree.ParserBasedElementClassLookup-class.html | 2 +- doc/html/api/lxml.etree.ParserError-class.html | 2 +- doc/html/api/lxml.etree.PyErrorLog-class.html | 2 +- .../lxml.etree.PythonElementClassLookup-class.html | 32 +- doc/html/api/lxml.etree.QName-class.html | 2 +- doc/html/api/lxml.etree.RelaxNG-class.html | 2 +- doc/html/api/lxml.etree.RelaxNGError-class.html | 2 +- .../api/lxml.etree.RelaxNGErrorTypes-class.html | 2 +- .../api/lxml.etree.RelaxNGParseError-class.html | 2 +- .../api/lxml.etree.RelaxNGValidateError-class.html | 2 +- doc/html/api/lxml.etree.Resolver-class.html | 2 +- doc/html/api/lxml.etree.Schematron-class.html | 8 +- doc/html/api/lxml.etree.SchematronError-class.html | 2 +- .../api/lxml.etree.SchematronParseError-class.html | 2 +- .../lxml.etree.SchematronValidateError-class.html | 2 +- .../api/lxml.etree.SerialisationError-class.html | 2 +- .../api/lxml.etree.SiblingsIterator-class.html | 2 +- doc/html/api/lxml.etree.TreeBuilder-class.html | 2 +- doc/html/api/lxml.etree.XInclude-class.html | 2 +- doc/html/api/lxml.etree.XIncludeError-class.html | 2 +- doc/html/api/lxml.etree.XMLParser-class.html | 4 +- doc/html/api/lxml.etree.XMLPullParser-class.html | 346 + doc/html/api/lxml.etree.XMLSchema-class.html | 2 +- doc/html/api/lxml.etree.XMLSchemaError-class.html | 2 +- .../api/lxml.etree.XMLSchemaParseError-class.html | 2 +- .../lxml.etree.XMLSchemaValidateError-class.html | 2 +- doc/html/api/lxml.etree.XMLSyntaxError-class.html | 2 +- doc/html/api/lxml.etree.XPath-class.html | 2 +- .../lxml.etree.XPathDocumentEvaluator-class.html | 2 +- .../lxml.etree.XPathElementEvaluator-class.html | 2 +- doc/html/api/lxml.etree.XPathError-class.html | 2 +- doc/html/api/lxml.etree.XPathEvalError-class.html | 2 +- .../api/lxml.etree.XPathFunctionError-class.html | 2 +- .../api/lxml.etree.XPathResultError-class.html | 2 +- .../api/lxml.etree.XPathSyntaxError-class.html | 2 +- doc/html/api/lxml.etree.XSLT-class.html | 6 +- .../api/lxml.etree.XSLTAccessControl-class.html | 2 +- doc/html/api/lxml.etree.XSLTApplyError-class.html | 2 +- doc/html/api/lxml.etree.XSLTError-class.html | 2 +- doc/html/api/lxml.etree.XSLTExtension-class.html | 2 +- .../api/lxml.etree.XSLTExtensionError-class.html | 2 +- doc/html/api/lxml.etree.XSLTParseError-class.html | 2 +- doc/html/api/lxml.etree.XSLTSaveError-class.html | 2 +- doc/html/api/lxml.etree._Attrib-class.html | 2 +- doc/html/api/lxml.etree._BaseErrorLog-class.html | 2 +- doc/html/api/lxml.etree._Comment-class.html | 2 +- doc/html/api/lxml.etree._Document-class.html | 2 +- doc/html/api/lxml.etree._DomainErrorLog-class.html | 2 +- doc/html/api/lxml.etree._Element-class.html | 9 +- .../api/lxml.etree._ElementIterator-class.html | 2 +- .../lxml.etree._ElementMatchIterator-class.html | 2 +- .../api/lxml.etree._ElementStringResult-class.html | 2 +- .../api/lxml.etree._ElementTagMatcher-class.html | 2 +- doc/html/api/lxml.etree._ElementTree-class.html | 2 +- .../lxml.etree._ElementUnicodeResult-class.html | 2 +- doc/html/api/lxml.etree._Entity-class.html | 2 +- doc/html/api/lxml.etree._ErrorLog-class.html | 2 +- doc/html/api/lxml.etree._FeedParser-class.html | 2 +- doc/html/api/lxml.etree._IDDict-class.html | 2 +- doc/html/api/lxml.etree._ListErrorLog-class.html | 2 +- doc/html/api/lxml.etree._LogEntry-class.html | 2 +- .../lxml.etree._ProcessingInstruction-class.html | 2 +- .../api/lxml.etree._RotatingErrorLog-class.html | 2 +- .../api/lxml.etree._SaxParserTarget-class.html | 2 +- .../api/lxml.etree._TargetParserResult-class.html | 2 +- doc/html/api/lxml.etree._Validator-class.html | 2 +- .../api/lxml.etree._XPathEvaluatorBase-class.html | 2 +- ...xml.etree._XSLTProcessingInstruction-class.html | 2 +- doc/html/api/lxml.etree._XSLTResultTree-class.html | 2 +- doc/html/api/lxml.etree.iterparse-class.html | 72 +- doc/html/api/lxml.etree.iterwalk-class.html | 2 +- doc/html/api/lxml.etree.xmlfile-class.html | 2 +- doc/html/api/lxml.html-module.html | 2 +- doc/html/api/lxml.html-pysrc.html | 3163 +- doc/html/api/lxml.html.CheckboxGroup-class.html | 2 +- doc/html/api/lxml.html.CheckboxValues-class.html | 2 +- doc/html/api/lxml.html.ElementSoup-module.html | 2 +- doc/html/api/lxml.html.ElementSoup-pysrc.html | 2 +- doc/html/api/lxml.html.FieldsDict-class.html | 6 +- doc/html/api/lxml.html.FormElement-class.html | 2 +- doc/html/api/lxml.html.HTMLParser-class.html | 2 +- doc/html/api/lxml.html.HtmlComment-class.html | 2 +- doc/html/api/lxml.html.HtmlElement-class.html | 2 +- .../lxml.html.HtmlElementClassLookup-class.html | 2 +- doc/html/api/lxml.html.HtmlEntity-class.html | 2 +- doc/html/api/lxml.html.HtmlMixin-class.html | 45 +- .../lxml.html.HtmlProcessingInstruction-class.html | 2 +- doc/html/api/lxml.html.InputElement-class.html | 2 +- doc/html/api/lxml.html.InputGetter-class.html | 2 +- doc/html/api/lxml.html.InputMixin-class.html | 2 +- doc/html/api/lxml.html.LabelElement-class.html | 2 +- .../api/lxml.html.MultipleSelectOptions-class.html | 2 +- doc/html/api/lxml.html.RadioGroup-class.html | 2 +- doc/html/api/lxml.html.SelectElement-class.html | 2 +- doc/html/api/lxml.html.TextareaElement-class.html | 2 +- doc/html/api/lxml.html.XHTMLParser-class.html | 2 +- doc/html/api/lxml.html._MethodFunc-class.html | 2 +- doc/html/api/lxml.html.builder-module.html | 2 +- doc/html/api/lxml.html.builder-pysrc.html | 2 +- doc/html/api/lxml.html.clean-module.html | 2 +- doc/html/api/lxml.html.clean-pysrc.html | 22 +- doc/html/api/lxml.html.clean.Cleaner-class.html | 2 +- doc/html/api/lxml.html.defs-module.html | 2 +- doc/html/api/lxml.html.defs-pysrc.html | 2 +- doc/html/api/lxml.html.diff-module.html | 6 +- doc/html/api/lxml.html.diff-pysrc.html | 17 +- doc/html/api/lxml.html.diff.DEL_END-class.html | 2 +- doc/html/api/lxml.html.diff.DEL_START-class.html | 2 +- ...html.diff.InsensitiveSequenceMatcher-class.html | 2 +- doc/html/api/lxml.html.diff.NoDeletes-class.html | 2 +- doc/html/api/lxml.html.diff.href_token-class.html | 2 +- doc/html/api/lxml.html.diff.tag_token-class.html | 2 +- doc/html/api/lxml.html.diff.token-class.html | 2 +- doc/html/api/lxml.html.formfill-module.html | 2 +- doc/html/api/lxml.html.formfill-pysrc.html | 503 +- ...ml.html.formfill.DefaultErrorCreator-class.html | 2 +- .../api/lxml.html.formfill.FormNotFound-class.html | 2 +- doc/html/api/lxml.html.html5parser-module.html | 2 +- doc/html/api/lxml.html.html5parser-pysrc.html | 402 +- .../lxml.html.html5parser.HTMLParser-class.html | 2 +- .../lxml.html.html5parser.XHTMLParser-class.html | 2 +- doc/html/api/lxml.html.soupparser-module.html | 2 +- doc/html/api/lxml.html.soupparser-pysrc.html | 9 +- doc/html/api/lxml.html.usedoctest-module.html | 2 +- doc/html/api/lxml.html.usedoctest-pysrc.html | 2 +- doc/html/api/lxml.includes-module.html | 2 +- doc/html/api/lxml.includes-pysrc.html | 2 +- doc/html/api/lxml.isoschematron-module.html | 2 +- doc/html/api/lxml.isoschematron-pysrc.html | 17 +- .../api/lxml.isoschematron.Schematron-class.html | 2 +- doc/html/api/lxml.objectify-module.html | 4 +- doc/html/api/lxml.objectify.BoolElement-class.html | 2 +- .../api/lxml.objectify.ElementMaker-class.html | 7 +- .../api/lxml.objectify.FloatElement-class.html | 2 +- doc/html/api/lxml.objectify.IntElement-class.html | 2 +- doc/html/api/lxml.objectify.LongElement-class.html | 2 +- doc/html/api/lxml.objectify.NoneElement-class.html | 2 +- .../api/lxml.objectify.NumberElement-class.html | 2 +- doc/html/api/lxml.objectify.ObjectPath-class.html | 2 +- ...xml.objectify.ObjectifiedDataElement-class.html | 2 +- .../lxml.objectify.ObjectifiedElement-class.html | 2 +- ...bjectify.ObjectifyElementClassLookup-class.html | 2 +- doc/html/api/lxml.objectify.PyType-class.html | 2 +- .../api/lxml.objectify.StringElement-class.html | 2 +- doc/html/api/lxml.pyclasslookup-module.html | 2 +- doc/html/api/lxml.pyclasslookup-pysrc.html | 5 +- doc/html/api/lxml.sax-module.html | 2 +- doc/html/api/lxml.sax-pysrc.html | 9 +- .../lxml.sax.ElementTreeContentHandler-class.html | 2 +- .../api/lxml.sax.ElementTreeProducer-class.html | 2 +- doc/html/api/lxml.sax.SaxError-class.html | 2 +- doc/html/api/lxml.tests-module.html | 2 +- doc/html/api/lxml.tests-pysrc.html | 2 +- doc/html/api/lxml.tests.common_imports-module.html | 18 +- doc/html/api/lxml.tests.common_imports-pysrc.html | 636 +- ....tests.common_imports.HelperTestCase-class.html | 2 +- ...l.tests.common_imports.LargeFileLike-class.html | 2 +- ....common_imports.LargeFileLikeUnicode-class.html | 2 +- ...l.tests.common_imports.SillyFileLike-class.html | 2 +- .../api/lxml.tests.dummy_http_server-module.html | 2 +- .../api/lxml.tests.dummy_http_server-pysrc.html | 2 +- ...mmy_http_server.HTTPRequestCollector-class.html | 2 +- ...ml.tests.dummy_http_server.WebServer-class.html | 2 +- ...ts.dummy_http_server._RequestHandler-class.html | 2 +- doc/html/api/lxml.tests.test_builder-module.html | 2 +- doc/html/api/lxml.tests.test_builder-pysrc.html | 8 +- ...l.tests.test_builder.BuilderTestCase-class.html | 2 +- .../api/lxml.tests.test_classlookup-module.html | 2 +- .../api/lxml.tests.test_classlookup-pysrc.html | 779 +- ...test_classlookup.ClassLookupTestCase-class.html | 18 +- ...tests.test_classlookup.ProxyTestCase-class.html | 2 +- doc/html/api/lxml.tests.test_css-module.html | 2 +- doc/html/api/lxml.tests.test_css-pysrc.html | 2 +- .../api/lxml.tests.test_css.CSSTestCase-class.html | 2 +- doc/html/api/lxml.tests.test_dtd-module.html | 2 +- doc/html/api/lxml.tests.test_dtd-pysrc.html | 847 +- ...lxml.tests.test_dtd.ETreeDtdTestCase-class.html | 115 +- .../api/lxml.tests.test_elementtree-module.html | 24 +- .../api/lxml.tests.test_elementtree-pysrc.html | 12738 +- ...est_elementtree.CElementTreeTestCase-class.html | 3 +- ...s.test_elementtree.ETreePullTestCase-class.html | 396 + ...tests.test_elementtree.ETreeTestCase-class.html | 7 +- ...test_elementtree.ElementTreeTestCase-class.html | 3 +- ....test_elementtree._ETreeTestCaseBase-class.html | 18 +- ....test_elementtree._XMLPullParserTest-class.html | 516 + doc/html/api/lxml.tests.test_errors-module.html | 2 +- doc/html/api/lxml.tests.test_errors-pysrc.html | 11 +- ...lxml.tests.test_errors.ErrorTestCase-class.html | 6 +- doc/html/api/lxml.tests.test_etree-module.html | 9 +- doc/html/api/lxml.tests.test_etree-pysrc.html | 12022 +- ...l.tests.test_etree.ETreeC14NTestCase-class.html | 2 +- ...l.tests.test_etree.ETreeErrorLogTest-class.html | 6 +- ...l.tests.test_etree.ETreeOnlyTestCase-class.html | 102 +- ....tests.test_etree.ETreeWriteTestCase-class.html | 2 +- ...sts.test_etree.ETreeXIncludeTestCase-class.html | 2 +- ...ts.test_etree.ElementIncludeTestCase-class.html | 2 +- ...l.tests.test_etree.XMLPullParserTest-class.html | 462 + ...l.tests.test_etree._XIncludeTestCase-class.html | 2 +- .../api/lxml.tests.test_htmlparser-module.html | 2 +- doc/html/api/lxml.tests.test_htmlparser-pysrc.html | 1446 +- ...s.test_htmlparser.HtmlParserTestCase-class.html | 78 +- doc/html/api/lxml.tests.test_http_io-module.html | 2 +- doc/html/api/lxml.tests.test_http_io-pysrc.html | 18 +- ...ml.tests.test_http_io.HttpIOTestCase-class.html | 6 +- ...lxml.tests.test_incremental_xmlfile-module.html | 2 +- .../lxml.tests.test_incremental_xmlfile-pysrc.html | 37 +- ...ental_xmlfile.BytesIOXmlFileTestCase-class.html | 2 +- ...mlfile.SimpleFileLikeXmlFileTestCase-class.html | 2 +- ...leLikeXmlFileTestCase.SimpleFileLike-class.html | 2 +- ...remental_xmlfile.TempXmlFileTestCase-class.html | 2 +- ...emental_xmlfile._XmlFileTestCaseBase-class.html | 2 +- doc/html/api/lxml.tests.test_io-module.html | 2 +- doc/html/api/lxml.tests.test_io-pysrc.html | 35 +- .../lxml.tests.test_io.ETreeIOTestCase-class.html | 6 +- ....tests.test_io.ElementTreeIOTestCase-class.html | 2 +- .../lxml.tests.test_io._IOTestCaseBase-class.html | 2 +- .../api/lxml.tests.test_isoschematron-module.html | 2 +- .../api/lxml.tests.test_isoschematron-pysrc.html | 16 +- ...chematron.ETreeISOSchematronTestCase-class.html | 2 +- doc/html/api/lxml.tests.test_nsclasses-module.html | 2 +- doc/html/api/lxml.tests.test_nsclasses-pysrc.html | 19 +- ...lasses.ETreeNamespaceClassesTestCase-class.html | 2 +- ...NamespaceClassesTestCase.bluff_class-class.html | 2 +- ...mespaceClassesTestCase.default_class-class.html | 2 +- ...eNamespaceClassesTestCase.maeh_class-class.html | 2 +- doc/html/api/lxml.tests.test_objectify-module.html | 4 +- doc/html/api/lxml.tests.test_objectify-pysrc.html | 54 +- ...sts.test_objectify.ObjectifyTestCase-class.html | 6 +- .../api/lxml.tests.test_pyclasslookup-module.html | 2 +- .../api/lxml.tests.test_pyclasslookup-pysrc.html | 432 +- ..._pyclasslookup.PyClassLookupTestCase-class.html | 6 +- doc/html/api/lxml.tests.test_relaxng-module.html | 2 +- doc/html/api/lxml.tests.test_relaxng-pysrc.html | 23 +- ...ts.test_relaxng.ETreeRelaxNGTestCase-class.html | 2 +- doc/html/api/lxml.tests.test_sax-module.html | 2 +- doc/html/api/lxml.tests.test_sax-pysrc.html | 10 +- ...lxml.tests.test_sax.ETreeSaxTestCase-class.html | 2 +- .../api/lxml.tests.test_schematron-module.html | 2 +- doc/html/api/lxml.tests.test_schematron-pysrc.html | 14 +- ...t_schematron.ETreeSchematronTestCase-class.html | 2 +- doc/html/api/lxml.tests.test_threading-module.html | 2 +- doc/html/api/lxml.tests.test_threading-pysrc.html | 46 +- ...est_threading.ThreadPipelineTestCase-class.html | 6 +- ...ipelineTestCase.ParseAndExtendWorker-class.html | 6 +- ...g.ThreadPipelineTestCase.ParseWorker-class.html | 6 +- ...ThreadPipelineTestCase.ReverseWorker-class.html | 2 +- ....ThreadPipelineTestCase.RotateWorker-class.html | 2 +- ...readPipelineTestCase.SerialiseWorker-class.html | 2 +- ...eading.ThreadPipelineTestCase.Worker-class.html | 2 +- ...sts.test_threading.ThreadingTestCase-class.html | 6 +- doc/html/api/lxml.tests.test_unicode-module.html | 2 +- doc/html/api/lxml.tests.test_unicode-pysrc.html | 295 +- ...l.tests.test_unicode.UnicodeTestCase-class.html | 18 +- doc/html/api/lxml.tests.test_xmlschema-module.html | 2 +- doc/html/api/lxml.tests.test_xmlschema-pysrc.html | 1000 +- ...hema.ETreeXMLSchemaResolversTestCase-class.html | 2 +- ...emaResolversTestCase.simple_resolver-class.html | 2 +- ...est_xmlschema.ETreeXMLSchemaTestCase-class.html | 34 +- .../api/lxml.tests.test_xpathevaluator-module.html | 4 +- .../api/lxml.tests.test_xpathevaluator-pysrc.html | 74 +- ...hevaluator.ETreeETXPathClassTestCase-class.html | 2 +- ...athevaluator.ETreeXPathClassTestCase-class.html | 2 +- ...athevaluator.ETreeXPathExsltTestCase-class.html | 2 +- ...st_xpathevaluator.ETreeXPathTestCase-class.html | 2 +- doc/html/api/lxml.tests.test_xslt-module.html | 2 +- doc/html/api/lxml.tests.test_xslt-pysrc.html | 3159 +- ...l.tests.test_xslt.ETreeEXSLTTestCase-class.html | 2 +- ...est_xslt.ETreeXSLTExtElementTestCase-class.html | 2 +- ...s.test_xslt.ETreeXSLTExtFuncTestCase-class.html | 2 +- ...ml.tests.test_xslt.ETreeXSLTTestCase-class.html | 2 +- ...lxml.tests.test_xslt.Py3XSLTTestCase-class.html | 2 +- doc/html/api/lxml.usedoctest-module.html | 2 +- doc/html/api/lxml.usedoctest-pysrc.html | 2 +- doc/html/api/mimetools.Message-class.html | 2 +- doc/html/api/module-tree.html | 2 +- doc/html/api/redirect.html | 2 +- doc/html/api/str-class.html | 2 +- doc/html/api/toc-everything.html | 25 +- doc/html/api/toc-lxml.etree-module.html | 10 +- .../api/toc-lxml.tests.common_imports-module.html | 3 +- .../toc-lxml.tests.test_elementtree-module.html | 9 +- doc/html/api/toc-lxml.tests.test_etree-module.html | 3 +- doc/html/api/xml.etree.ElementTree-module.html | 14 +- doc/html/api/xml.etree.ElementTree-pysrc.html | 10 +- .../api/xml.etree.ElementTree.Element-class.html | 2 +- .../xml.etree.ElementTree.ElementTree-class.html | 2 +- .../xml.etree.ElementTree.ParseError-class.html | 2 +- .../api/xml.etree.ElementTree.QName-class.html | 2 +- .../xml.etree.ElementTree.TreeBuilder-class.html | 2 +- .../api/xml.etree.ElementTree.XMLParser-class.html | 2 +- ...etree.ElementTree._IterParseIterator-class.html | 2 +- ...etree.ElementTree._SimpleElementPath-class.html | 2 +- doc/html/build.html | 8 +- doc/html/capi.html | 4 +- .../{changes-3.2.5.html => changes-3.3.0.html} | 724 +- doc/html/compatibility.html | 4 +- doc/html/credits.html | 4 +- doc/html/cssselect.html | 4 +- doc/html/element_classes.html | 4 +- doc/html/elementsoup.html | 4 +- doc/html/extensions.html | 4 +- doc/html/html5parser.html | 4 +- doc/html/index.html | 19 +- doc/html/installation.html | 4 +- doc/html/intro.html | 4 +- doc/html/lxml-source-howto.html | 4 +- doc/html/lxmlhtml.html | 4 +- doc/html/objectify.html | 4 +- doc/html/parsing.html | 466 +- doc/html/performance.html | 4 +- doc/html/resolvers.html | 4 +- doc/html/sax.html | 4 +- doc/html/sitemap.html | 2 +- doc/html/tutorial.html | 4 +- doc/html/validation.html | 4 +- doc/html/xpathxslt.html | 4 +- doc/main.txt | 33 +- doc/parsing.txt | 466 +- fake_pyrex/Pyrex/Distutils/__init__.py | 1 - fake_pyrex/Pyrex/Distutils/build_ext.py | 1 - fake_pyrex/Pyrex/__init__.py | 1 - setup.py | 8 +- setupinfo.py | 3 + src/lxml.egg-info/PKG-INFO | 21 +- src/lxml.egg-info/SOURCES.txt | 11 +- src/lxml/apihelpers.pxi | 165 +- src/lxml/classlookup.pxi | 30 +- src/lxml/dtd.pxi | 115 +- src/lxml/extensions.pxi | 43 +- src/lxml/html/__init__.py | 56 +- src/lxml/html/formfill.py | 1 - src/lxml/html/html5parser.py | 15 +- src/lxml/html/tests/test_formfill.txt | 12 + src/lxml/html/tests/test_html5parser.py | 3 +- src/lxml/html/tests/test_rewritelinks.txt | 22 +- src/lxml/includes/dtdvalid.pxd | 10 +- src/lxml/includes/etree_defs.h | 8 + src/lxml/includes/etreepublic.pxd | 8 +- src/lxml/includes/htmlparser.pxd | 10 +- src/lxml/includes/lxml-version.h | 2 +- src/lxml/includes/xmlparser.pxd | 2 +- src/lxml/iterparse.pxi | 595 +- src/lxml/lxml.etree.c | 118605 ++++++++++-------- src/lxml/lxml.etree.h | 16 +- src/lxml/lxml.etree.pyx | 170 +- src/lxml/lxml.etree_api.h | 9 +- src/lxml/lxml.objectify.c | 13360 +- src/lxml/lxml.objectify.pyx | 35 +- src/lxml/lxml_endian.h | 8 + src/lxml/parser.pxi | 333 +- src/lxml/parsertarget.pxi | 12 +- src/lxml/proxy.pxi | 61 +- src/lxml/public-api.pxi | 6 + src/lxml/python.pxd | 17 +- src/lxml/readonlytree.pxi | 9 +- src/lxml/saxparser.pxi | 555 +- src/lxml/schematron.pxi | 6 +- src/lxml/serializer.pxi | 12 +- src/lxml/tests/common_imports.py | 20 +- src/lxml/tests/test_classlookup.py | 43 + src/lxml/tests/test_dtd.py | 121 +- src/lxml/tests/test_elementtree.py | 202 +- src/lxml/tests/test_etree.py | 268 +- src/lxml/tests/test_htmlparser.py | 75 +- src/lxml/tests/test_pyclasslookup.py | 2 +- src/lxml/tests/test_unicode.py | 28 +- src/lxml/tests/test_xmlschema.py | 22 + src/lxml/tests/test_xslt.py | 23 +- src/lxml/xmlerror.pxi | 167 +- src/lxml/xmlid.pxi | 2 - src/lxml/xpath.pxi | 3 - src/lxml/xslt.pxi | 40 +- src/lxml/xsltext.pxi | 2 + version.txt | 2 +- 476 files changed, 102461 insertions(+), 80368 deletions(-) create mode 100644 doc/html/api/lxml.etree.HTMLPullParser-class.html create mode 100644 doc/html/api/lxml.etree.XMLPullParser-class.html create mode 100644 doc/html/api/lxml.tests.test_elementtree.ETreePullTestCase-class.html create mode 100644 doc/html/api/lxml.tests.test_elementtree._XMLPullParserTest-class.html create mode 100644 doc/html/api/lxml.tests.test_etree.XMLPullParserTest-class.html rename doc/html/{changes-3.2.5.html => changes-3.3.0.html} (94%) delete mode 100644 fake_pyrex/Pyrex/Distutils/__init__.py delete mode 100644 fake_pyrex/Pyrex/Distutils/build_ext.py delete mode 100644 fake_pyrex/Pyrex/__init__.py create mode 100644 src/lxml/lxml_endian.h diff --git a/CHANGES.txt b/CHANGES.txt index 234cbb7..1ae43a3 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -2,6 +2,180 @@ lxml changelog ============== +3.3.0 (2014-01-26) +================== + +Features added +-------------- + +Bugs fixed +---------- + +* The heuristic that distinguishes file paths from URLs was tightened + to produce less false negatives. + +Other changes +------------- + + +3.3.0beta5 (2014-01-18) +======================= + +Features added +-------------- + +* The PEP 393 unicode parsing support gained a fallback for wchar strings + which might still be somewhat common on Windows systems. + +Bugs fixed +---------- + +* Several error handling problems were fixed throughout the code base that + could previously lead to exceptions being silently swallowed or not + properly reported. + +* The C-API function ``appendChild()`` is now deprecated as it does not + propagate exceptions (its return type is ``void``). The new function + ``appendChildToElement()`` was added as a safe replacement. + +* Passing a string into ``fromstringlist()`` raises an exception instead of + parsing the string character by character. + +Other changes +------------- + +* Document cleanup code was simplified using the new GC features in + Cython 0.20. + + +3.3.0beta4 (2014-01-12) +======================= + +Features added +-------------- + +Bugs fixed +---------- + +* The (empty) value returned by the ``attrib`` property of Entity and Comment + objects was mutable. + +* Element class lookup wasn't available for the new pull parsers or when using + a custom parser target. + +* Setting Element attributes on instantiation with both the ``attrib`` argument + and keyword arguments could modify the mapping passed as ``attrib``. + +* LP#1266171: DTDs instantiated from internal/external subsets (i.e. through + the docinfo property) lost their attribute declarations. + +Other changes +------------- + +* Built with Cython 0.20pre (gitrev 012ae82eb) to prepare support for + Python 3.4. + + +3.3.0beta3 (2014-01-02) +======================= + +Features added +-------------- + +* Unicode string parsing was optimised for Python 3.3 (PEP 393). + +Bugs fixed +---------- + +* HTML parsing of Unicode strings could misdecode the input on some platforms. + +* Crash in xmlfile() when closing open elements out of order in an error case. + +Other changes +------------- + + +3.3.0beta2 (2013-12-20) +======================= + +Features added +-------------- + +* ``iterparse()`` supports the ``recover`` option. + +Bugs fixed +---------- + +* Crash in ``iterparse()`` for HTML parsing. + +* Crash in target parsing with attributes. + +Other changes +------------- + +* The safety check in the read-only tree implementation (e.g. used by + ``PythonElementClassLookup``) raises a more appropriate ``ReferenceError`` + for illegal access after tree disposal instead of an ``AssertionError``. + This should only impact test code that specifically checks the original + behaviour. + + +3.3.0beta1 (2013-12-12) +======================= + +Features added +-------------- + +* New option ``handle_failures`` in ``make_links_absolute()`` and + ``resolve_base_href()`` (lxml.html) that enables ignoring or + discarding links that fail to parse as URLs. + +* New parser classes ``XMLPullParser`` and ``HTMLPullParser`` for + incremental parsing, as implemented for ElementTree in Python 3.4. + +* ``iterparse()`` enables recovery mode by default for HTML parsing + (``html=True``). + +Bugs fixed +---------- + +* LP#1255132: crash when trying to run validation over non-Element (e.g. + comment or PI). + +* Error messages in the log and in exception messages that originated + from libxml2 could accidentally be picked up from preceding warnings + instead of the actual error. + +* The ``ElementMaker`` in lxml.objectify did not accept a dict as + argument for adding attributes to the element it's building. This + works as in lxml.builder now. + +* LP#1228881: ``repr(XSLTAccessControl)`` failed in Python 3. + +* Raise ``ValueError`` when trying to append an Element to itself or + to one of its own descendants, instead of running into an infinite + loop. + +* LP#1206077: htmldiff discarded whitespace from the output. + +* Compressed plain-text serialisation to file-like objects was broken. + +* lxml.html.formfill: Fix textarea form filling. + The textarea used to be cleared before the new content was set, + which removed the name attribute. + + +Other changes +------------- + +* Some basic API classes use freelists internally for faster + instantiation. This can speed up some ``iterparse()`` scenarios, + for example. + +* ``iterparse()`` was rewritten to use the new ``*PullParser`` + classes internally instead of being a parser itself. + + 3.2.5 (2014-01-02) ================== diff --git a/MANIFEST.in b/MANIFEST.in index cc592d7..b8b3d80 100644 --- a/MANIFEST.in +++ b/MANIFEST.in @@ -6,14 +6,13 @@ include MANIFEST.in Makefile version.txt include CHANGES.txt CREDITS.txt INSTALL.txt LICENSES.txt README.rst TODO.txt recursive-include src *.pyx *.pxd *.pxi *.py recursive-include src/lxml lxml.etree.c lxml.objectify.c -recursive-include src/lxml lxml.etree.h lxml.etree_api.h etree_defs.h +recursive-include src/lxml lxml.etree.h lxml.etree_api.h etree_defs.h lxml_endian.h recursive-include src/lxml/isoschematron *.rng *.xsl *.txt -recursive-include src/lxml/tests *.rng *.xslt *.xml *.dtd *.xsd *.sch *.html *.txt +recursive-include src/lxml/tests *.rng *.xslt *.xml *.dtd *.xsd *.sch *.html recursive-include src/lxml/html/tests *.data *.txt recursive-include samples *.xml recursive-include benchmark *.py recursive-include doc *.txt *.html *.css *.xml *.mgp pubkey.asc tagpython*.png Makefile recursive-include doc/s5/ui *.gif *.htc *.png *.js recursive-include doc/s5/ep2008 *.py *.png *.rng -recursive-include fake_pyrex *.py include doc/*.py diff --git a/Makefile b/Makefile index b941360..6bb1cb8 100644 --- a/Makefile +++ b/Makefile @@ -113,6 +113,6 @@ docclean: rm -fr doc/pdf realclean: clean docclean - find . -name '*.c' -exec rm -f {} \; + find src -name '*.c' -exec rm -f {} \; rm -f TAGS $(PYTHON) setup.py clean -a --without-cython diff --git a/PKG-INFO b/PKG-INFO index 2dc00cd..0daeaa4 100644 --- a/PKG-INFO +++ b/PKG-INFO @@ -1,12 +1,12 @@ Metadata-Version: 1.1 Name: lxml -Version: 3.2.5 +Version: 3.3.0 Summary: Powerful and Pythonic XML processing library combining libxml2/libxslt with the ElementTree API. Home-page: http://lxml.de/ Author: lxml dev team Author-email: lxml-dev@lxml.de License: UNKNOWN -Download-URL: http://pypi.python.org/packages/source/l/lxml/lxml-3.2.5.tar.gz +Download-URL: http://pypi.python.org/packages/source/l/lxml/lxml-3.3.0.tar.gz Description: lxml is a Pythonic, mature binding for the libxml2 and libxslt libraries. It provides safe and convenient access to these libraries using the ElementTree API. @@ -30,14 +30,14 @@ Description: lxml is a Pythonic, mature binding for the libxml2 and libxslt libr After an official release of a new stable series, bug fixes may become available at - https://github.com/lxml/lxml/tree/lxml-3.2 . - Running ``easy_install lxml==3.2bugfix`` will install + https://github.com/lxml/lxml/tree/lxml-3.3 . + Running ``easy_install lxml==3.3bugfix`` will install the unreleased branch state from - https://github.com/lxml/lxml/tarball/lxml-3.2#egg=lxml-3.2bugfix + https://github.com/lxml/lxml/tarball/lxml-3.3#egg=lxml-3.3bugfix 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.5 (2014-01-02) + 3.3.0 (2014-01-26) ================== Features added @@ -46,12 +46,8 @@ Description: lxml is a Pythonic, mature binding for the libxml2 and libxslt libr Bugs fixed ---------- - * Crash in xmlfile() when closing open elements out of order in an error case. - - * Crash in target parsing with attributes. - - * LP#1255132: crash when trying to run validation over non-Element (e.g. - comment or PI). + * The heuristic that distinguishes file paths from URLs was tightened + to produce less false negatives. Other changes ------------- @@ -73,6 +69,7 @@ Classifier: Programming Language :: Python :: 3 Classifier: Programming Language :: Python :: 3.1 Classifier: Programming Language :: Python :: 3.2 Classifier: Programming Language :: Python :: 3.3 +Classifier: Programming Language :: Python :: 3.4 Classifier: Programming Language :: C Classifier: Operating System :: OS Independent Classifier: Topic :: Text Processing :: Markup :: HTML diff --git a/TODO.txt b/TODO.txt index 275b17b..a2f9634 100644 --- a/TODO.txt +++ b/TODO.txt @@ -42,3 +42,13 @@ Objectify * emulate setting special __attributes__ on ObjectifiedElement's as Python attributes, not XML children + + +Incremental parsing +------------------- + +* create all iterparse events only on start events and + store the end events in the stack + +* rewrite SAX event creation in a more C-ish way to avoid having to + acquire the GIL on each event diff --git a/buildlibxml.py b/buildlibxml.py index 81a5de0..8b88365 100644 --- a/buildlibxml.py +++ b/buildlibxml.py @@ -49,18 +49,37 @@ def download_and_extract_zlatkovic_binaries(destdir): return libs + +def find_top_dir_of_zipfile(zipfile): + topdir = None + files = [f.filename for f in zipfile.filelist] + dirs = [d for d in files if d.endswith('/')] + if dirs: + dirs.sort(key=len) + topdir = dirs[0] + topdir = topdir[:topdir.index("/")+1] + for path in files: + if not path.startswith(topdir): + topdir = None + break + assert topdir, ( + "cannot determine single top-level directory in zip file %s" % + zipfile.filename) + return topdir.rstrip('/') + + def unpack_zipfile(zipfn, destdir): assert zipfn.endswith('.zip') import zipfile print('Unpacking %s into %s' % (os.path.basename(zipfn), destdir)) f = zipfile.ZipFile(zipfn) try: + extracted_dir = os.path.join(destdir, find_top_dir_of_zipfile(f)) f.extractall(path=destdir) finally: f.close() - edir = os.path.join(destdir, os.path.basename(zipfn)[:-len('.zip')]) - assert os.path.exists(edir), 'missing: %s' % edir - return edir + assert os.path.exists(extracted_dir), 'missing: %s' % extracted_dir + return extracted_dir def get_prebuilt_libxml2xslt(download_dir, static_include_dirs, static_library_dirs): assert sys.platform.startswith('win') diff --git a/doc/FAQ.txt b/doc/FAQ.txt index 76079bf..9348f63 100644 --- a/doc/FAQ.txt +++ b/doc/FAQ.txt @@ -999,7 +999,9 @@ Some of the most famous excessive content expansion attacks use XML entity references. Luckily, entity expansion is mostly useless for the data commonly sent through web services and can simply be disabled, which rules out several types of -denial of service attacks at once. Consequently, version +denial of service attacks at once. This also involves an attack +that reads local files from the server, as XML entities can be +defined to expand into their content. Consequently, version 1.2 of the SOAP standard explicitly disallows entity references in the XML stream. diff --git a/doc/build.txt b/doc/build.txt index 7618e03..90c2597 100644 --- a/doc/build.txt +++ b/doc/build.txt @@ -42,9 +42,9 @@ developer sources (e.g. to test a bug fix that has not been release yet) or if you want to be an lxml developer, then you do need a working Cython installation. You can use pip_ to install it:: - pip install "Cython>=0.18" + pip install "Cython>=0.20" -lxml currently requires at least Cython 0.18, later release versions +lxml currently requires at least Cython 0.20, later release versions should work as well. diff --git a/doc/html/FAQ.html b/doc/html/FAQ.html index 6707b3f..19b164d 100644 --- a/doc/html/FAQ.html +++ b/doc/html/FAQ.html @@ -10,7 +10,7 @@
-

lxml FAQ - Frequently Asked Questions

+

lxml FAQ - Frequently Asked Questions

Frequently asked questions on lxml. See also the notes on compatibility to ElementTree.

@@ -810,7 +810,9 @@ to resources.

use XML entity references. Luckily, entity expansion is mostly useless for the data commonly sent through web services and can simply be disabled, which rules out several types of -denial of service attacks at once. Consequently, version +denial of service attacks at once. This also involves an attack +that reads local files from the server, as XML entities can be +defined to expand into their content. Consequently, version 1.2 of the SOAP standard explicitly disallows entity references in the XML stream.

To disable entity expansion, use an XML parser that is configured @@ -915,7 +917,7 @@ map it to your namespace. See also the question above.

diff --git a/doc/html/api.html b/doc/html/api.html index 5c0b4a9..963c9dc 100644 --- a/doc/html/api.html +++ b/doc/html/api.html @@ -8,7 +8,7 @@
-

APIs specific to lxml.etree

+

APIs specific to lxml.etree

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:

diff --git a/doc/html/api/abc.ABCMeta-class.html b/doc/html/api/abc.ABCMeta-class.html index ec607b2..c097548 100644 --- a/doc/html/api/abc.ABCMeta-class.html +++ b/doc/html/api/abc.ABCMeta-class.html @@ -426,7 +426,7 @@ even via super()).

@@ -240,7 +247,7 @@