- Tue Apr 19 2011 Jeffrey C. Ollie <jeff@ocjtech.us> - 2.3-1
- 2.3 (2011-02-06)
- ================
-
- Features added
- --------------
-
- * When looking for children, ``lxml.objectify`` takes '{}tag' as
- meaning an empty namespace, as opposed to the parent namespace.
-
- Bugs fixed
- ----------
-
- * When finished reading from a file-like object, the parser
- immediately calls its ``.close()`` method.
-
- * When finished parsing, ``iterparse()`` immediately closes the input
- file.
-
- * 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).
-
- * ``marque`` tag in HTML cleanup code is correctly named ``marquee``.
-
- Other changes
- --------------
-
- * Some public functions in the Cython-level C-API have more explicit
- return types.
-
- 2.3beta1 (2010-09-06)
- =====================
-
- Features added
- --------------
-
- Bugs fixed
- ----------
-
- * Crash in newer libxml2 versions when moving elements between
- documents that had attributes on replaced XInclude nodes.
-
- * ``XMLID()`` function was missing the optional ``parser`` and
- ``base_url`` parameters.
-
- * Searching for wildcard tags in ``iterparse()`` was broken in Py3.
-
- * ``lxml.html.open_in_browser()`` didn't work in Python 3 due to the
- use of os.tempnam. It now takes an optional 'encoding' parameter.
-
- Other changes
- --------------
-
- 2.3alpha2 (2010-07-24)
- ======================
-
- Features added
- --------------
-
- Bugs fixed
- ----------
-
- * Crash in XSLT when generating text-only result documents with a
- stylesheet created in a different thread.
-
- Other changes
- --------------
-
- * ``repr()`` of Element objects shows the hex ID with leading 0x
- (following ElementTree 1.3).
-
- 2.3alpha1 (2010-06-19)
- ======================
-
- Features added
- --------------
-
- * Keyword argument ``namespaces`` in ``lxml.cssselect.CSSSelector()``
- to pass a prefix-to-namespace mapping for the selector.
-
- * New function ``lxml.etree.register_namespace(prefix, uri)`` that
- globally registers a namespace prefix for a namespace that newly
- created Elements in that namespace will use automatically. Follows
- ElementTree 1.3.
-
- * Support 'unicode' string name as encoding parameter in
- ``tostring()``, following ElementTree 1.3.
-
- * Support 'c14n' serialisation method in ``ElementTree.write()`` and
- ``tostring()``, following ElementTree 1.3.
-
- * The ElementPath expression syntax (``el.find*()``) 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).
-
- * During regular XPath evaluation, various ESXLT functions are
- available within their namespace when using libxslt 1.1.26 or later.
-
- * Support passing a readily configured logger instance into
- ``PyErrorLog``, instead of a logger name.
-
- * On serialisation, the new ``doctype`` parameter can be used to
- override the DOCTYPE (internal subset) of the document.
-
- * New parameter ``output_parent`` to ``XSLTExtension.apply_templates()``
- to append the resulting content directly to an output element.
-
- * ``XSLTExtension.process_children()`` to process the content of the
- XSLT extension element itself.
-
- * ISO-Schematron support based on the de-facto Schematron reference
- 'skeleton implementation'.
-
- * XSLT objects now take XPath object as ``__call__`` stylesheet
- parameters.
-
- * Enable path caching in ElementPath (``el.find*()``) to avoid parsing
- overhead.
-
- * 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.
-
- * XSLT extension elements: support for XSLT context nodes other than
- elements: document root, comments, processing instructions.
-
- * Support for strings (in addition to Elements) in node-sets returned
- by extension functions.
-
- * Forms that lack an ``action`` attribute default to the base URL of
- the document on submit.
-
- * XPath attribute result strings have an ``attrname`` property.
-
- * Namespace URIs get validated against RFC 3986 at the API level
- (required by the XML namespace specification).
-
- * Target parsers show their target object in the ``.target`` property
- (compatible with ElementTree).
-
- Bugs fixed
- ----------
-
- * API is hardened against invalid proxy instances to prevent crashes
- due to incorrectly instantiated Element instances.
-
- * Prevent crash when instantiating ``CommentBase`` and friends.
-
- * Export ElementTree compatible XML parser class as
- ``XMLTreeBuilder``, as it is called in ET 1.2.
-
- * 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.
-
- * Parsing broken fragments in lxml.html could fail if the fragment
- contained an orphaned closing '
-
- * Using XSLT extension elements around the root of the output document
- crashed.
-
- * ``lxml.cssselect`` did not distinguish between ``x[attr="val"]`` and
- ``x [attr="val"]`` (with a space). The latter now matches the
- attribute independent of the element.
-
- * 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 ``iterlinks()`` generator in ``lxml.html``
- 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.
-
- * The ``.value`` attribute of ``textarea`` 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.
-
- * Target parser didn't call ``.close()`` on the target object if
- parsing failed. Now it is guaranteed that ``.close()`` will be
- called after parsing, regardless of the outcome.
-
- Other changes
- -------------
-
- * Official support for Python 3.1.2 and later.
-
- * Static MS Windows builds can now download their dependencies
- themselves.
-
- * ``Element.attrib`` no longer uses a cyclic reference back to its
- Element object. It therefore no longer requires the garbage
- collector to clean up.
-
- * Static builds include libiconv, in addition to libxml2 and libxslt.
- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild
- rebuild for newer python3
- Rebuild for newer libxml2
- 2.2.8 (2010-09-02)
- Bugs fixed
-
- * Crash in newer libxml2 versions when moving elements between
- documents that had attributes on replaced XInclude nodes.
- * Import fix for urljoin in Python 3.1+.
- Don't byte-compile files during install because setup.py doesn't
properly byte compile for Python version 3.2
- Rebuild for Python 3.2
- 2.2.7 (2010-07-24)
- Bugs fixed
-
- * Crash in XSLT when generating text-only result documents with a stylesheet created in a different thread.
- actually add the patch this time
- workaround for 2to3 issue (patch 0; bug 600036)
- Rebuilt for https://fedoraproject.org/wiki/Features/Python_2.7/MassRebuild
- 2.2.6 (2010-03-02)
-
- Bugs fixed
-
- * Fixed several Python 3 regressions by building with Cython 0.11.3.
- 2.2.5 (2010-02-28)
-
- Features added
-
- * Support for running XSLT extension elements on the input root node
- (e.g. in a template matching on "/").
-
- Bugs fixed
-
- * Crash in XPath evaluation when reading smart strings from a document
- other than the original context document.
- * Support recent versions of html5lib by not requiring its XHTMLParser
- in htmlparser.py anymore.
- * Manually instantiating the custom element classes in lxml.objectify
- could crash.
- * Invalid XML text characters were not rejected by the API when they
- appeared in unicode strings directly after non-ASCII characters.
- * lxml.html.open_http_urllib() did not work in Python 3.
- * The functions strip_tags() and strip_elements() in lxml.etree did
- not remove all occurrences of a tag in all cases.
- * Crash in XSLT extension elements when the XSLT context node is not
- an element.
- update to current python3 guidelines
- be more explicit in %files
- use %global and not %define
- create docs subpackage
- add stripping 3-byte Byte Order Marker from src/lxml/tests/test_errors.py
to get 2to3 to work (dmalcolm)
- fixes FTBFS (#564674)
- Update to 2.2.4
- Enable Python 3 subpackage
- F-13's python build chain must be a little different...
- Add option to build a Python 3 subpackage, original patch by David Malcolm
- 2.2.3 (2009-10-30)
- Bugs fixed
-
- * The resolve_entities option did not work in the incremental feed
- parser.
- * Looking up and deleting attributes without a namespace could hit a
- namespaced attribute of the same name instead.
- * Late errors during calls to SubElement() (e.g. attribute related
- ones) could leave a partially initialised element in the tree.
- * Modifying trees that contain parsed entity references could result
- in an infinite loop.
- * ObjectifiedElement.__setattr__ created an empty-string child element
- when the attribute value was rejected as a non-unicode/non-ascii
- string
- * Syntax errors in lxml.cssselect could result in misleading error
- messages.
- * Invalid syntax in CSS expressions could lead to an infinite loop in
- the parser of lxml.cssselect.
- * CSS special character escapes were not properly handled in
- lxml.cssselect.
- * CSS Unicode escapes were not properly decoded in lxml.cssselect.
- * Select options in HTML forms that had no explicit value 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.
- * XPath raised a TypeError when finding CDATA sections. This is now
- fully supported.
- * Calling help(lxml.objectify) didn't work at the prompt.
- * The ElementMaker in lxml.objectify no longer defines the default
- namespaces when annotation is disabled.
- * Feed parser failed to honour the 'recover' option on parse errors.
- * Diverting the error logging to Python's logging system was broken.
- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild
- 2.2.2 (2009-06-21)
- Features added
-
- * New helper functions strip_attributes(), strip_elements(),
- strip_tags() in lxml.etree to remove attributes/subtrees/tags
- from a subtree.
-
- Bugs fixed
-
- * 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.
- * Raising an exception from a parser target callback didn't always
- terminate the parser.
- * Only {true, false, 1, 0} are accepted as the lexical representation
- for BoolElement ({True, False, T, F, t, f} not any more), restoring
- lxml <= 2.0 behaviour.
- 2.2.1 (2009-06-02)
- Features added
-
- * Injecting default attributes into a document during XML Schema
- validation (also at parse time).
- * Pass huge_tree parser option to disable parser security restrictions
- imposed by libxml2 2.7.
-
- Bugs fixed
-
- * The script for statically building libxml2 and libxslt didn't work
- in Py3.
- * XMLSchema() also passes invalid schema documents on to libxml2 for
- parsing (which could lead to a crash before release 2.6.24).
- 2.2 (2009-03-21)
- Features added
-
- * Support for standalone flag in XML declaration through
- tree.docinfo.standalone and by passing standalone=True/False on
- serialisation.
-
- Bugs fixed
-
- * Crash when parsing an XML Schema with external imports from a
- filename.
- 2.2beta4 (2009-02-27)
- Features added
-
- * Support strings and instantiable Element classes as child arguments
- to the constructor of custom Element classes.
- * GZip compression support for serialisation to files and file-like
- objects.
-
- Bugs fixed
-
- * Deep-copying an ElementTree copied neither its sibling PIs and
- comments nor its internal/external DTD subsets.
- * Soupparser failed on broken attributes without values.
- * Crash in XSLT when overwriting an already defined attribute using
- xsl:attribute.
- * Crash bug in exception handling code under Python 3. This was due to
- a problem in Cython, not lxml itself.
- * lxml.html.FormElement._name() failed for non top-level forms.
- * TAG special attribute in constructor of custom Element classes was
- evaluated incorrectly.
-
- Other changes
-
- * Official support for Python 3.0.1.
- * Element.findtext() now returns an empty string instead of None for
- Elements without text content.
- Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild
- 2.2beta3 (2009-02-17)
- Features added
-
- * XSLT.strparam() class method to wrap quoted string parameters that
- require escaping.
-
- Bugs fixed
-
- * Memory leak in XPath evaluators.
- * Crash when parsing indented XML in one thread and merging it with
- other documents parsed in another thread.
- * Setting the base attribute in lxml.objectify from a unicode string
- failed.
- * Fixes following changes in Python 3.0.1.
- * Minor fixes for Python 3.
-
- Other changes
-
- * The global error log (which is copied into the exception log) is now
- local to a thread, which fixes some race conditions.
- * More robust error handling on serialisation.
- 2.2beta2 (2009-01-25)
- Bugs fixed
-
- * Potential memory leak on exception handling. This was due to a
- problem in Cython, not lxml itself.
- * iter_links (and related link-rewriting functions) in lxml.html would
- interpret CSS like url("link") incorrectly (treating the quotation
- marks as part of the link).
- * Failing import on systems that have an io module.
- 2.2beta1 (2008-12-12)
- Features added
-
- * Allow lxml.html.diff.htmldiff to accept Element objects,
- not just HTML strings.
-
- Bugs fixed
-
- * Crash when using an XPath evaluator in multiple threads.
- * Fixed missing whitespace before Link:... in lxml.html.diff.
-
- Other changes
-
- * Export lxml.html.parse.
- Rebuild for Python 2.6
- Don't forget to upload the sources!
- 2.2alpha1 (2008-11-23)
- Features added
-
- * Support for XSLT result tree fragments in XPath/XSLT extension
- functions.
- * QName objects have new properties namespace and localname.
- * New options for exclusive C14N and C14N without comments.
- * Instantiating a custom Element classes creates a new Element.
-
- Bugs fixed
-
- * XSLT didn't inherit the parse options of the input document.
- * 0-bytes could slip through the API when used inside of Unicode
- strings.
- * With lxml.html.clean.autolink, links with balanced parenthesis, that
- end in a parenthesis, will be linked in their entirety (typical with
- Wikipedia links).
- 2.1.3 (2008-11-17)
- Bugs fixed
-
- * 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.
- * Parser Unicode decoding errors could get swallowed by other
- exceptions.
- * Name/import errors in some Python modules.
- * 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.
- * Fix a pre-Py3k warning when parsing from a gzip file in Py2.6.
- * Test suite fixes for libxml2 2.7.
- * Resolver.resolve_string() did not work for non-ASCII byte strings.
- * Resolver.resolve_file() was broken.
- * Overriding the parser encoding didn't work for many encodings.
- 2.1.2 (2008-09-05)
- Features added
-
- * 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.
-
- Bugs fixed
-
- * Memory problem when passing documents between threads.
- * Target parser did not honour the recover option and raised an exception
- instead of calling .close() on the target.
- Update to 2.1.1
- Update to 2.0.7
- Update download URL
- Update to 2.0.6
- Update to 2.0.5
- Update to 2.0.3
- Update to 2.0.2
- Update to 2.0.1
- Autorebuild for GCC 4.3
- Update to 1.3.6.
- Update to 1.3.5.
- Update to 1.3.4.
- Rebuild for selinux ppc32 issue.
- BR python-setuptools-devel
- Update to 1.3.3
- Update to 1.1.2
- Rebuild for new Python
- Rebuild for FC6
- Update to new upstream version
- Include, don't ghost .pyo files per new guidelines
- Update to new upstream release
- Update to new upstream release
- Update to new upstream 1.0 release
- Add python-setuptools to BuildRequires
- Use dist tag
- Fix summary and description
- update the new upstream version
- remove Pyrex build req
- Initial package