From 641f1a12e4bd28afef0024bff47a0c779a28d7c4 Mon Sep 17 00:00:00 2001
From: Hyunjee Kim
Date: Thu, 31 Jan 2019 10:44:22 +0900
Subject: [PATCH] Imported Upstream version 3.3.5
Change-Id: Idbc5a7aa85af79b0f0162840243130149498d86c
Signed-off-by: Hyunjee Kim
---
CHANGES.txt | 10 +
INSTALL.txt | 28 +-
PKG-INFO | 18 +-
doc/api.txt | 29 +
doc/build.txt | 73 +-
doc/html/FAQ.html | 4 +-
doc/html/api.html | 30 +-
doc/html/api/abc.ABCMeta-class.html | 2 +-
doc/html/api/api-objects.txt | 4 +-
doc/html/api/class-tree.html | 14 +-
.../cssselect.parser.SelectorError-class.html | 2 +-
...lect.parser.SelectorSyntaxError-class.html | 2 +-
...cssselect.xpath.ExpressionError-class.html | 2 +-
.../api/cssselect.xpath.XPathExpr-class.html | 2 +-
doc/html/api/deprecated-index.html | 2 +-
.../api/exceptions.AssertionError-class.html | 2 +-
doc/html/api/help.html | 2 +-
doc/html/api/identifier-index-A.html | 2 +-
doc/html/api/identifier-index-B.html | 2 +-
doc/html/api/identifier-index-C.html | 2 +-
doc/html/api/identifier-index-D.html | 2 +-
doc/html/api/identifier-index-E.html | 2 +-
doc/html/api/identifier-index-F.html | 2 +-
doc/html/api/identifier-index-G.html | 2 +-
doc/html/api/identifier-index-H.html | 2 +-
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 | 2 +-
doc/html/api/identifier-index-S.html | 2 +-
doc/html/api/identifier-index-T.html | 2 +-
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 | 2 +-
doc/html/api/identifier-index-Y.html | 2 +-
doc/html/api/identifier-index-Z.html | 2 +-
doc/html/api/identifier-index-_.html | 12 +-
doc/html/api/identifier-index.html | 2 +-
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 | 2 +-
...lementInclude.FatalIncludeError-class.html | 2 +-
doc/html/api/lxml.builder-module.html | 2 +-
doc/html/api/lxml.builder-pysrc.html | 2 +-
.../api/lxml.builder.ElementMaker-class.html | 2 +-
doc/html/api/lxml.cssselect-module.html | 2 +-
doc/html/api/lxml.cssselect-pysrc.html | 2 +-
.../api/lxml.cssselect.CSSSelector-class.html | 2 +-
...ml.cssselect.LxmlHTMLTranslator-class.html | 2 +-
.../lxml.cssselect.LxmlTranslator-class.html | 2 +-
doc/html/api/lxml.doctestcompare-module.html | 2 +-
doc/html/api/lxml.doctestcompare-pysrc.html | 2 +-
...ctestcompare.LHTMLOutputChecker-class.html | 2 +-
...octestcompare.LXMLOutputChecker-class.html | 2 +-
....doctestcompare._RestoreChecker-class.html | 2 +-
doc/html/api/lxml.etree-module.html | 20 +-
.../lxml.etree.AncestorsIterator-class.html | 2 +-
...ttributeBasedElementClassLookup-class.html | 2 +-
doc/html/api/lxml.etree.C14NError-class.html | 2 +-
doc/html/api/lxml.etree.CDATA-class.html | 2 +-
.../api/lxml.etree.CommentBase-class.html | 2 +-
....etree.CustomElementClassLookup-class.html | 2 +-
doc/html/api/lxml.etree.DTD-class.html | 2 +-
doc/html/api/lxml.etree.DTDError-class.html | 2 +-
.../api/lxml.etree.DTDParseError-class.html | 2 +-
.../lxml.etree.DTDValidateError-class.html | 2 +-
doc/html/api/lxml.etree.DocInfo-class.html | 2 +-
.../api/lxml.etree.DocumentInvalid-class.html | 2 +-
.../lxml.etree.ETCompatXMLParser-class.html | 2 +-
doc/html/api/lxml.etree.ETXPath-class.html | 2 +-
.../api/lxml.etree.ElementBase-class.html | 2 +-
...lxml.etree.ElementChildIterator-class.html | 2 +-
.../lxml.etree.ElementClassLookup-class.html | 2 +-
...etree.ElementDefaultClassLookup-class.html | 2 +-
...etree.ElementDepthFirstIterator-class.html | 2 +-
...ree.ElementNamespaceClassLookup-class.html | 2 +-
.../lxml.etree.ElementTextIterator-class.html | 2 +-
doc/html/api/lxml.etree.EntityBase-class.html | 2 +-
doc/html/api/lxml.etree.Error-class.html | 2 +-
.../api/lxml.etree.ErrorDomains-class.html | 2 +-
.../api/lxml.etree.ErrorLevels-class.html | 2 +-
doc/html/api/lxml.etree.ErrorTypes-class.html | 2 +-
...tree.FallbackElementClassLookup-class.html | 2 +-
doc/html/api/lxml.etree.HTMLParser-class.html | 2 +-
.../api/lxml.etree.HTMLPullParser-class.html | 2 +-
doc/html/api/lxml.etree.LxmlError-class.html | 2 +-
.../lxml.etree.LxmlRegistryError-class.html | 2 +-
.../api/lxml.etree.LxmlSyntaxError-class.html | 2 +-
...ml.etree.NamespaceRegistryError-class.html | 2 +-
doc/html/api/lxml.etree.PIBase-class.html | 2 +-
doc/html/api/lxml.etree.ParseError-class.html | 2 +-
...e.ParserBasedElementClassLookup-class.html | 2 +-
.../api/lxml.etree.ParserError-class.html | 2 +-
doc/html/api/lxml.etree.PyErrorLog-class.html | 2 +-
....etree.PythonElementClassLookup-class.html | 2 +-
doc/html/api/lxml.etree.QName-class.html | 2 +-
doc/html/api/lxml.etree.RelaxNG-class.html | 2 +-
.../api/lxml.etree.RelaxNGError-class.html | 2 +-
.../lxml.etree.RelaxNGErrorTypes-class.html | 2 +-
.../lxml.etree.RelaxNGParseError-class.html | 2 +-
...lxml.etree.RelaxNGValidateError-class.html | 2 +-
doc/html/api/lxml.etree.Resolver-class.html | 2 +-
doc/html/api/lxml.etree.Schematron-class.html | 2 +-
.../api/lxml.etree.SchematronError-class.html | 2 +-
...lxml.etree.SchematronParseError-class.html | 2 +-
...l.etree.SchematronValidateError-class.html | 2 +-
.../lxml.etree.SerialisationError-class.html | 2 +-
.../lxml.etree.SiblingsIterator-class.html | 2 +-
.../api/lxml.etree.TreeBuilder-class.html | 2 +-
doc/html/api/lxml.etree.XInclude-class.html | 2 +-
.../api/lxml.etree.XIncludeError-class.html | 2 +-
doc/html/api/lxml.etree.XMLParser-class.html | 2 +-
.../api/lxml.etree.XMLPullParser-class.html | 2 +-
doc/html/api/lxml.etree.XMLSchema-class.html | 2 +-
.../api/lxml.etree.XMLSchemaError-class.html | 2 +-
.../lxml.etree.XMLSchemaParseError-class.html | 2 +-
...ml.etree.XMLSchemaValidateError-class.html | 2 +-
.../api/lxml.etree.XMLSyntaxError-class.html | 2 +-
doc/html/api/lxml.etree.XPath-class.html | 2 +-
...ml.etree.XPathDocumentEvaluator-class.html | 2 +-
...xml.etree.XPathElementEvaluator-class.html | 2 +-
doc/html/api/lxml.etree.XPathError-class.html | 2 +-
.../api/lxml.etree.XPathEvalError-class.html | 2 +-
.../lxml.etree.XPathFunctionError-class.html | 2 +-
.../lxml.etree.XPathResultError-class.html | 2 +-
.../lxml.etree.XPathSyntaxError-class.html | 2 +-
doc/html/api/lxml.etree.XSLT-class.html | 2 +-
.../lxml.etree.XSLTAccessControl-class.html | 2 +-
.../api/lxml.etree.XSLTApplyError-class.html | 2 +-
doc/html/api/lxml.etree.XSLTError-class.html | 2 +-
.../api/lxml.etree.XSLTExtension-class.html | 2 +-
.../lxml.etree.XSLTExtensionError-class.html | 2 +-
.../api/lxml.etree.XSLTParseError-class.html | 2 +-
.../api/lxml.etree.XSLTSaveError-class.html | 2 +-
doc/html/api/lxml.etree._Attrib-class.html | 2 +-
.../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 +-
.../api/lxml.etree._DomainErrorLog-class.html | 2 +-
doc/html/api/lxml.etree._Element-class.html | 2 +-
.../lxml.etree._ElementIterator-class.html | 2 +-
...xml.etree._ElementMatchIterator-class.html | 2 +-
...lxml.etree._ElementStringResult-class.html | 2 +-
.../lxml.etree._ElementTagMatcher-class.html | 2 +-
.../api/lxml.etree._ElementTree-class.html | 2 +-
...xml.etree._ElementUnicodeResult-class.html | 2 +-
doc/html/api/lxml.etree._Entity-class.html | 2 +-
doc/html/api/lxml.etree._ErrorLog-class.html | 2 +-
.../api/lxml.etree._FeedParser-class.html | 2 +-
doc/html/api/lxml.etree._IDDict-class.html | 2 +-
.../api/lxml.etree._ListErrorLog-class.html | 2 +-
doc/html/api/lxml.etree._LogEntry-class.html | 2 +-
...ml.etree._ProcessingInstruction-class.html | 2 +-
.../lxml.etree._RotatingErrorLog-class.html | 2 +-
.../lxml.etree._SaxParserTarget-class.html | 2 +-
.../lxml.etree._TargetParserResult-class.html | 2 +-
doc/html/api/lxml.etree._Validator-class.html | 2 +-
.../lxml.etree._XPathEvaluatorBase-class.html | 2 +-
...tree._XSLTProcessingInstruction-class.html | 2 +-
.../api/lxml.etree._XSLTResultTree-class.html | 2 +-
doc/html/api/lxml.etree.iterparse-class.html | 2 +-
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 | 2 +-
.../api/lxml.html.CheckboxGroup-class.html | 2 +-
.../api/lxml.html.CheckboxValues-class.html | 2 +-
.../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 +-
...xml.html.HtmlElementClassLookup-class.html | 2 +-
doc/html/api/lxml.html.HtmlEntity-class.html | 2 +-
doc/html/api/lxml.html.HtmlMixin-class.html | 2 +-
....html.HtmlProcessingInstruction-class.html | 2 +-
.../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 +-
.../api/lxml.html.LabelElement-class.html | 2 +-
...lxml.html.MultipleSelectOptions-class.html | 2 +-
doc/html/api/lxml.html.RadioGroup-class.html | 2 +-
.../api/lxml.html.SelectElement-class.html | 2 +-
.../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 | 48 +-
doc/html/api/lxml.html.clean-pysrc.html | 1307 +++++++++--------
.../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 | 2 +-
.../api/lxml.html.diff.DEL_END-class.html | 2 +-
.../api/lxml.html.diff.DEL_START-class.html | 2 +-
...diff.InsensitiveSequenceMatcher-class.html | 2 +-
.../api/lxml.html.diff.NoDeletes-class.html | 2 +-
.../api/lxml.html.diff.href_token-class.html | 2 +-
.../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 | 2 +-
...ml.formfill.DefaultErrorCreator-class.html | 2 +-
...lxml.html.formfill.FormNotFound-class.html | 2 +-
.../api/lxml.html.html5parser-module.html | 2 +-
doc/html/api/lxml.html.html5parser-pysrc.html | 2 +-
...xml.html.html5parser.HTMLParser-class.html | 2 +-
...ml.html.html5parser.XHTMLParser-class.html | 2 +-
doc/html/api/lxml.html.soupparser-module.html | 2 +-
doc/html/api/lxml.html.soupparser-pysrc.html | 2 +-
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 | 2 +-
.../lxml.isoschematron.Schematron-class.html | 2 +-
doc/html/api/lxml.objectify-module.html | 4 +-
.../api/lxml.objectify.BoolElement-class.html | 2 +-
.../lxml.objectify.ElementMaker-class.html | 2 +-
.../lxml.objectify.FloatElement-class.html | 2 +-
.../api/lxml.objectify.IntElement-class.html | 2 +-
.../api/lxml.objectify.LongElement-class.html | 2 +-
.../api/lxml.objectify.NoneElement-class.html | 2 +-
.../lxml.objectify.NumberElement-class.html | 2 +-
.../api/lxml.objectify.ObjectPath-class.html | 2 +-
...bjectify.ObjectifiedDataElement-class.html | 2 +-
...ml.objectify.ObjectifiedElement-class.html | 2 +-
...ify.ObjectifyElementClassLookup-class.html | 2 +-
doc/html/api/lxml.objectify.PyType-class.html | 2 +-
.../lxml.objectify.StringElement-class.html | 2 +-
doc/html/api/lxml.pyclasslookup-module.html | 2 +-
doc/html/api/lxml.pyclasslookup-pysrc.html | 2 +-
doc/html/api/lxml.sax-module.html | 2 +-
doc/html/api/lxml.sax-pysrc.html | 2 +-
...l.sax.ElementTreeContentHandler-class.html | 2 +-
.../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 +-
.../api/lxml.tests.common_imports-module.html | 2 +-
.../api/lxml.tests.common_imports-pysrc.html | 2 +-
...s.common_imports.HelperTestCase-class.html | 2 +-
...ts.common_imports.LargeFileLike-class.html | 2 +-
...on_imports.LargeFileLikeUnicode-class.html | 2 +-
...ts.common_imports.SillyFileLike-class.html | 2 +-
.../lxml.tests.dummy_http_server-module.html | 2 +-
.../lxml.tests.dummy_http_server-pysrc.html | 2 +-
...ttp_server.HTTPRequestCollector-class.html | 2 +-
...sts.dummy_http_server.WebServer-class.html | 2 +-
...mmy_http_server._RequestHandler-class.html | 2 +-
.../api/lxml.tests.test_builder-module.html | 2 +-
.../api/lxml.tests.test_builder-pysrc.html | 2 +-
...ts.test_builder.BuilderTestCase-class.html | 2 +-
.../lxml.tests.test_classlookup-module.html | 2 +-
.../lxml.tests.test_classlookup-pysrc.html | 2 +-
...classlookup.ClassLookupTestCase-class.html | 2 +-
....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 +-
...lxml.tests.test_css.CSSTestCase-class.html | 2 +-
...lxml.tests.test_doctestcompare-module.html | 2 +-
.../lxml.tests.test_doctestcompare-pysrc.html | 2 +-
...ctestcompare.DoctestCompareTest-class.html | 2 +-
....test_doctestcompare.DummyInput-class.html | 2 +-
doc/html/api/lxml.tests.test_dtd-module.html | 2 +-
doc/html/api/lxml.tests.test_dtd-pysrc.html | 2 +-
...tests.test_dtd.ETreeDtdTestCase-class.html | 2 +-
.../lxml.tests.test_elementtree-module.html | 2 +-
.../lxml.tests.test_elementtree-pysrc.html | 2 +-
...lementtree.CElementTreeTestCase-class.html | 2 +-
...t_elementtree.ETreePullTestCase-class.html | 2 +-
....test_elementtree.ETreeTestCase-class.html | 2 +-
...elementtree.ElementTreeTestCase-class.html | 2 +-
..._elementtree._ETreeTestCaseBase-class.html | 2 +-
..._elementtree._XMLPullParserTest-class.html | 2 +-
.../api/lxml.tests.test_errors-module.html | 2 +-
.../api/lxml.tests.test_errors-pysrc.html | 2 +-
...tests.test_errors.ErrorTestCase-class.html | 2 +-
.../api/lxml.tests.test_etree-module.html | 2 +-
doc/html/api/lxml.tests.test_etree-pysrc.html | 2 +-
...ts.test_etree.ETreeC14NTestCase-class.html | 2 +-
...ts.test_etree.ETreeErrorLogTest-class.html | 2 +-
...ts.test_etree.ETreeOnlyTestCase-class.html | 2 +-
...s.test_etree.ETreeWriteTestCase-class.html | 2 +-
...est_etree.ETreeXIncludeTestCase-class.html | 2 +-
...st_etree.ElementIncludeTestCase-class.html | 2 +-
...ts.test_etree.XMLPullParserTest-class.html | 2 +-
...ts.test_etree._XIncludeTestCase-class.html | 2 +-
.../lxml.tests.test_htmlparser-module.html | 2 +-
.../api/lxml.tests.test_htmlparser-pysrc.html | 2 +-
...t_htmlparser.HtmlParserTestCase-class.html | 2 +-
.../api/lxml.tests.test_http_io-module.html | 2 +-
.../api/lxml.tests.test_http_io-pysrc.html | 2 +-
...sts.test_http_io.HttpIOTestCase-class.html | 2 +-
...tests.test_incremental_xmlfile-module.html | 2 +-
....tests.test_incremental_xmlfile-pysrc.html | 2 +-
..._xmlfile.BytesIOXmlFileTestCase-class.html | 2 +-
...e.SimpleFileLikeXmlFileTestCase-class.html | 2 +-
...eXmlFileTestCase.SimpleFileLike-class.html | 2 +-
...tal_xmlfile.TempXmlFileTestCase-class.html | 2 +-
...al_xmlfile._XmlFileTestCaseBase-class.html | 2 +-
doc/html/api/lxml.tests.test_io-module.html | 2 +-
doc/html/api/lxml.tests.test_io-pysrc.html | 2 +-
...l.tests.test_io.ETreeIOTestCase-class.html | 2 +-
...s.test_io.ElementTreeIOTestCase-class.html | 2 +-
...l.tests.test_io._IOTestCaseBase-class.html | 2 +-
.../lxml.tests.test_isoschematron-module.html | 2 +-
.../lxml.tests.test_isoschematron-pysrc.html | 2 +-
...tron.ETreeISOSchematronTestCase-class.html | 2 +-
.../api/lxml.tests.test_nsclasses-module.html | 2 +-
.../api/lxml.tests.test_nsclasses-pysrc.html | 2 +-
...s.ETreeNamespaceClassesTestCase-class.html | 2 +-
...paceClassesTestCase.bluff_class-class.html | 2 +-
...ceClassesTestCase.default_class-class.html | 2 +-
...spaceClassesTestCase.maeh_class-class.html | 2 +-
.../api/lxml.tests.test_objectify-module.html | 2 +-
.../api/lxml.tests.test_objectify-pysrc.html | 2 +-
...est_objectify.ObjectifyTestCase-class.html | 2 +-
.../lxml.tests.test_pyclasslookup-module.html | 2 +-
.../lxml.tests.test_pyclasslookup-pysrc.html | 2 +-
...asslookup.PyClassLookupTestCase-class.html | 2 +-
.../api/lxml.tests.test_relaxng-module.html | 2 +-
.../api/lxml.tests.test_relaxng-pysrc.html | 2 +-
...st_relaxng.ETreeRelaxNGTestCase-class.html | 2 +-
doc/html/api/lxml.tests.test_sax-module.html | 2 +-
doc/html/api/lxml.tests.test_sax-pysrc.html | 2 +-
...tests.test_sax.ETreeSaxTestCase-class.html | 2 +-
.../lxml.tests.test_schematron-module.html | 2 +-
.../api/lxml.tests.test_schematron-pysrc.html | 2 +-
...ematron.ETreeSchematronTestCase-class.html | 2 +-
.../api/lxml.tests.test_threading-module.html | 2 +-
.../api/lxml.tests.test_threading-pysrc.html | 2 +-
...hreading.ThreadPipelineTestCase-class.html | 2 +-
...neTestCase.ParseAndExtendWorker-class.html | 2 +-
...eadPipelineTestCase.ParseWorker-class.html | 2 +-
...dPipelineTestCase.ReverseWorker-class.html | 2 +-
...adPipelineTestCase.RotateWorker-class.html | 2 +-
...ipelineTestCase.SerialiseWorker-class.html | 2 +-
...g.ThreadPipelineTestCase.Worker-class.html | 2 +-
...est_threading.ThreadingTestCase-class.html | 2 +-
.../api/lxml.tests.test_unicode-module.html | 2 +-
.../api/lxml.tests.test_unicode-pysrc.html | 2 +-
...ts.test_unicode.UnicodeTestCase-class.html | 2 +-
.../api/lxml.tests.test_xmlschema-module.html | 2 +-
.../api/lxml.tests.test_xmlschema-pysrc.html | 2 +-
...ETreeXMLSchemaResolversTestCase-class.html | 2 +-
...solversTestCase.simple_resolver-class.html | 2 +-
...mlschema.ETreeXMLSchemaTestCase-class.html | 2 +-
...lxml.tests.test_xpathevaluator-module.html | 4 +-
.../lxml.tests.test_xpathevaluator-pysrc.html | 2 +-
...uator.ETreeETXPathClassTestCase-class.html | 2 +-
...aluator.ETreeXPathClassTestCase-class.html | 2 +-
...aluator.ETreeXPathExsltTestCase-class.html | 2 +-
...athevaluator.ETreeXPathTestCase-class.html | 2 +-
doc/html/api/lxml.tests.test_xslt-module.html | 2 +-
doc/html/api/lxml.tests.test_xslt-pysrc.html | 2 +-
...ts.test_xslt.ETreeEXSLTTestCase-class.html | 2 +-
...slt.ETreeXSLTExtElementTestCase-class.html | 2 +-
...t_xslt.ETreeXSLTExtFuncTestCase-class.html | 2 +-
...sts.test_xslt.ETreeXSLTTestCase-class.html | 2 +-
...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/str-class.html | 2 +-
doc/html/api/toc-everything.html | 6 +-
doc/html/api/toc-lxml.html.clean-module.html | 6 +-
.../api/xml.etree.ElementTree-module.html | 14 +-
doc/html/api/xml.etree.ElementTree-pysrc.html | 2 +-
.../xml.etree.ElementTree.Element-class.html | 2 +-
...l.etree.ElementTree.ElementTree-class.html | 2 +-
...ml.etree.ElementTree.ParseError-class.html | 2 +-
.../xml.etree.ElementTree.QName-class.html | 2 +-
...l.etree.ElementTree.TreeBuilder-class.html | 2 +-
...xml.etree.ElementTree.XMLParser-class.html | 2 +-
....ElementTree._IterParseIterator-class.html | 2 +-
....ElementTree._SimpleElementPath-class.html | 2 +-
doc/html/build.html | 71 +-
doc/html/capi.html | 4 +-
...{changes-3.3.4.html => changes-3.3.5.html} | 632 ++++----
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 | 13 +-
doc/html/installation.html | 30 +-
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 | 4 +-
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 | 10 +-
src/lxml.egg-info/PKG-INFO | 18 +-
src/lxml.egg-info/SOURCES.txt | 2 +-
src/lxml/html/clean.py | 9 +-
src/lxml/html/tests/test_clean.txt | 9 +-
src/lxml/includes/lxml-version.h | 2 +-
src/lxml/lxml.etree.c | 2 +-
src/lxml/lxml.objectify.c | 12 +-
version.txt | 2 +-
424 files changed, 1610 insertions(+), 1665 deletions(-)
rename doc/html/{changes-3.3.4.html => changes-3.3.5.html} (99%)
diff --git a/CHANGES.txt b/CHANGES.txt
index 7b4862a2..37ecbd61 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -2,6 +2,16 @@
lxml changelog
==============
+3.3.5 (2014-04-18)
+==================
+
+Bugs fixed
+----------
+
+* HTML cleaning could fail to strip javascript links that mix control
+ characters into the link scheme.
+
+
3.3.4 (2014-04-03)
==================
diff --git a/INSTALL.txt b/INSTALL.txt
index 0b4eb424..2ac9e630 100644
--- a/INSTALL.txt
+++ b/INSTALL.txt
@@ -149,11 +149,13 @@ others pay for it.
Due to the additional lack of package management of this platform,
it is best to link the library dependencies statically if you decide
-to build from sources. For that, use the `binary distribution of
-libxml2 and libxslt `_.
-You need both libxml2 and libxslt, as well as iconv and zlib,
-which you can get from the same download site. Further build
-instructions are in the `source build documentation `_.
+to build from sources, rather than using a binary installer. For
+that, lxml can use the `binary distribution of libxml2 and libxslt
+`_, which it downloads
+automatically during the static build. It needs both libxml2 and
+libxslt, as well as iconv and zlib, which are available from the
+same download site. Further build instructions are in the
+`source build documentation `_.
MacOS-X
@@ -163,20 +165,12 @@ A `macport `_ of lxml is available. Try
something like ``port install py25-lxml``.
If you want to use a more recent lxml release, you may have to build
-it yourself. Apple doesn't help here, as MacOS-X is so badly maintained
-by them that the pre-installed system libraries of libxml2 and libxslt
-tend to be horribly outdated, and updating them is everything but easy.
-In any case, you cannot run lxml with the system provided libraries,
-so you have to use newer libraries.
+it yourself. While the pre-installed system libraries of libxml2
+and libxslt are less outdated in recent MacOS-X versions than they
+used to be, so lxml should work them them out of the box, it is still
+recommended to use a static build with the most recent versions.
Luckily, lxml's ``setup.py`` script has built-in support for building
and integrating these libraries statically during the build. Please
read the
`MacOS-X build instructions `_.
-
-A number of users also reported success with updated libraries (e.g.
-using `fink `_ or macports), but needed to set
-the runtime environment variable ``DYLD_LIBRARY_PATH`` to the directory
-where fink keeps the libraries. In any case, this method is easy to get
-wrong and everything but safe. Unless you know what you are doing,
-follow the static build instructions above.
diff --git a/PKG-INFO b/PKG-INFO
index 9a52015a..9f660ec0 100644
--- a/PKG-INFO
+++ b/PKG-INFO
@@ -1,12 +1,12 @@
Metadata-Version: 1.1
Name: lxml
-Version: 3.3.4
+Version: 3.3.5
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.3.4.tar.gz
+Download-URL: http://pypi.python.org/packages/source/l/lxml/lxml-3.3.5.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,22 +37,14 @@ 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.3.4 (2014-04-03)
+ 3.3.5 (2014-04-18)
==================
- Features added
- --------------
-
- * Source line numbers above 65535 are available on Elements when
- using libxml2 2.9 or later.
-
Bugs fixed
----------
- * ``lxml.html.fragment_fromstring()`` failed for bytes input in Py3.
-
- Other changes
- -------------
+ * HTML cleaning could fail to strip javascript links that mix control
+ characters into the link scheme.
diff --git a/doc/api.txt b/doc/api.txt
index e4b1c263..9ce1cf56 100644
--- a/doc/api.txt
+++ b/doc/api.txt
@@ -37,6 +37,7 @@ lxml is extremely extensible through `XPath functions in Python`_, custom
5 Error handling on exceptions
6 Error logging
7 Serialisation
+ 8 Incremental XML generation
8 CDATA
9 XInclude and ElementInclude
10 write_c14n on ElementTree
@@ -516,6 +517,34 @@ removed from memory right after their construction, which can largely
reduce the memory footprint of an application, while keeping the
overall XML generation easy, safe and correct.
+Together with Python coroutines, this can be used to generate XML
+in an asynchronous, non-blocking fashion, e.g. for a stream protocol
+like the instant messaging protocol
+`XMPP `_::
+
+ def writer(out_stream):
+ with xmlfile(out_stream) as xf:
+ with xf.element('{http://etherx.jabber.org/streams}stream'):
+ try:
+ while True:
+ el = (yield)
+ xf.write(el)
+ except GeneratorExit:
+ pass
+
+ w = writer(stream)
+ next(w) # start writing (run up to 'yield')
+
+Then, whenever XML elements are available for writing, call
+
+::
+
+ w.send(element)
+
+And when done::
+
+ w.close()
+
CDATA
-----
diff --git a/doc/build.txt b/doc/build.txt
index 074b532f..0c2ef8ce 100644
--- a/doc/build.txt
+++ b/doc/build.txt
@@ -280,70 +280,15 @@ Static linking on Windows
Most operating systems have proper package management that makes installing
current versions of libxml2 and libxslt easy. The most famous exception is
-Microsoft Windows, which entirely lacks these capabilities. It can therefore
-be interesting to statically link the external libraries into lxml.etree to
-avoid having to install them separately.
-
-Download lxml and all required libraries to the same directory. The iconv,
-libxml2, libxslt, and zlib libraries are all available from the ftp site
-ftp://ftp.zlatkovic.com/pub/libxml/.
-
-Your directory should now have the following files in it (although most likely
-different versions)::
-
- iconv-1.9.1.win32.zip
- libxml2-2.6.23.win32.zip
- libxslt-1.1.15.win32.zip
- lxml-1.0.0.tgz
- zlib-1.2.3.win32.zip
-
-Now extract each of those files in the *same* directory. This should give you
-something like this::
-
- iconv-1.9.1.win32/
- iconv-1.9.1.win32.zip
- libxml2-2.6.23.win32/
- libxml2-2.6.23.win32.zip
- libxslt-1.1.15.win32/
- libxslt-1.1.15.win32.zip
- lxml-1.0.0/
- lxml-1.0.0.tgz
- zlib-1.2.3.win32/
- zlib-1.2.3.win32.zip
-
-Go to the lxml directory and edit the file ``setup.py``. There should
-be a section near the top that looks like this::
-
- STATIC_INCLUDE_DIRS = []
- STATIC_LIBRARY_DIRS = []
- STATIC_CFLAGS = []
-
-Change this section to something like this, but take care to use the correct
-version numbers::
-
- STATIC_INCLUDE_DIRS = [
- "..\\libxml2-2.6.23.win32\\include",
- "..\\libxslt-1.1.15.win32\\include",
- "..\\zlib-1.2.3.win32\\include",
- "..\\iconv-1.9.1.win32\\include"
- ]
-
- STATIC_LIBRARY_DIRS = [
- "..\\libxml2-2.6.23.win32\\lib",
- "..\\libxslt-1.1.15.win32\\lib",
- "..\\zlib-1.2.3.win32\\lib",
- "..\\iconv-1.9.1.win32\\lib"
- ]
-
- STATIC_CFLAGS = []
-
-Add any CFLAGS you might consider useful to the third list. Now you
-should be able to pass the ``--static`` option to setup.py and
-everything should work well. Try calling::
-
- python setup.py bdist_wininst --static
-
-This will create a windows installer in the ``pkg`` directory.
+Microsoft Windows, which entirely lacks these capabilities. To work around
+the limits of this platform, lxml's installation can download pre-built
+packages of the dependencies and build statically against them. Assuming
+you have a proper C compiler setup to build Python extensions, this should
+work::
+
+ python setup.py bdist_wininst --static-deps
+
+It should create a windows installer in the ``pkg`` directory.
Building Debian packages from SVN sources
diff --git a/doc/html/FAQ.html b/doc/html/FAQ.html
index e83cf28e..9a113e18 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.
@@ -935,7 +935,7 @@ map it to your namespace. See also the question above.
diff --git a/doc/html/api.html b/doc/html/api.html
index 16ae40e6..8728b0cd 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
@@ -372,6 +372,32 @@ out into the XML file one after the other. That way, they can be
removed from memory right after their construction, which can largely
reduce the memory footprint of an application, while keeping the
overall XML generation easy, safe and correct.
+
Together with Python coroutines, this can be used to generate XML
+in an asynchronous, non-blocking fashion, e.g. for a stream protocol
+like the instant messaging protocol
+XMPP:
+
+def writer(out_stream):
+ with xmlfile(out_stream) as xf:
+ with xf.element('{http://etherx.jabber.org/streams}stream'):
+ try:
+ while True:
+ el = (yield)
+ xf.write(el)
+ except GeneratorExit:
+ pass
+
+w = writer(stream)
+next(w) # start writing (run up to 'yield')
+
+
Then, whenever XML elements are available for writing, call
+
+w.send(element)
+
+
And when done:
+
+w.close()
+
CDATA
@@ -450,7 +476,7 @@ example:
diff --git a/doc/html/api/abc.ABCMeta-class.html b/doc/html/api/abc.ABCMeta-class.html
index e4568811..93cf805d 100644
--- a/doc/html/api/abc.ABCMeta-class.html
+++ b/doc/html/api/abc.ABCMeta-class.html
@@ -426,7 +426,7 @@ even via super()).