lxml 2.3.1 released

Hi everyone, I'm happy to announce the release of lxml 2.3.1. This is the first bug fix release of the stable 2.3 series. It contains a number of behavioural corrections of the original 2.3 release, so updating is recommended. http://lxml.de/ http://pypi.python.org/pypi/lxml/2.3.1/ This release was built using Cython 0.15.1. It is recommended (although not required) to use at least libxml2 2.7.8 with lxml, which fixes a number of important bugs compared to the previous 2.7.x releases. Note that this release officially drops supports for CPython 2.3, which has long terminated its extended security-fix-only maintenance period back in March 2008. CPython 2.4.x, although equally outdated, continues to be supported due to its long term maintenance in certain Linux/Unix server installations. If you are interested in trainings, commercial support or customisations regarding the lxml package, please contact me directly. Have fun, Stefan Features added -------------- * New option kill_tags in lxml.html.clean to remove specific tags and their content (i.e. their whole subtree). * pi.get() and pi.attrib on processing instructions to parse pseudo-attributes from the text content of processing instructions. * lxml.get_include() 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. * Resolver.resolve_file() takes an additional option close_file 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. Bugs fixed ---------- * HTML cleaning didn't remove 'data:' links. * The html5lib parser integration now uses the 'official' implementation in html5lib itself, which makes it work with newer releases of the library. * In lxml.sax, endElementNS() could incorrectly reject a plain tag name when the corresponding start event inferred the same plain tag name to be in the default namespace. * When an open file-like object is passed into parse() or iterparse(), 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. * Assertion error in lxml.html.cleaner when discarding top-level elements. * 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 to be consistent with the selector behavior in WebKit and Firefox, and makes more css expressions valid location paths (for use in xsl:template match). * In lxml.html, non-selected <option> tags no longer show up in the collected form values. * Adding/removing <option> values to/from a multiple select form field properly selects them and unselects them. Other changes -------------- * Static builds can specify the download directory with the --download-dir option.
participants (2)
-
Henrik Zagerholm
-
Stefan Behnel