./textproc/py-lxml, Python binding for libxml2 and libxslt

[ CVSweb ] [ Homepage ] [ RSS ] [ Required by ] [ Add to tracker ]

Branch: CURRENT, Version: 4.5.2, Package name: py37-lxml-4.5.2, Maintainer: pkgsrc-users

lxml is a Pythonic binding for the libxml2 and libxslt libraries.
It is unique in that it combines the speed and feature completeness
of these libraries with the simplicity of a native Python API,
mostly compatible but superior to the well-known ElementTree API.

Required to run:
[textproc/libxml2] [textproc/libxslt] [devel/py-setuptools] [lang/python37]

Required to build:

Master sites:

SHA1: 2e4fc1bd8a60ae4876e2f6e4c9f0daa244abf8bc
RMD160: dc3e49d91fa4a5fbd5836731b4fa87766e316adf
Filesize: 4440.479 KB

Version history: (Expand)

CVS history: (Expand)

   2020-07-10 09:03:57 by Adam Ciarcinski | Files touched by this commit (2) | Package updated
Log message:
py-lxml: updated to 4.5.2


Bugs fixed

* ``Cleaner()`` now validates that only known configuration options can be set.

* ``Cleaner.clean_html()`` discarded comments and PIs regardless of the
  corresponding configuration option, if ``remove_unknown_tags`` was set.

* Instead of globally overwriting the document loader in libxml2, lxml now
  sets it per parser run, which improves the interoperability with other users \ 
of libxml2
  such as libxmlsec.

* Fix build in CPython 3.10 by using Cython 0.29.21.

* The setup options "--with-xml2-config" and \ 
"--with-xslt-config" were accidentally renamed
  to "--xml2-config" and "--xslt-config" in 4.5.1 and are \ 
now available again.
   2020-06-02 10:25:05 by Adam Ciarcinski | Files touched by this commit (1689)
Log message:
Revbump for icu
   2020-05-23 09:48:00 by Adam Ciarcinski | Files touched by this commit (2) | Package updated
Log message:
py-lxml: updated to 4.5.1

Bugs fixed
* Fix failures when serialising documents larger than 2GB in some cases.
* ``QName`` values were not accepted by the ``el.iter()`` method.
* The build failed to detect libraries on Linux that are only
  configured via pkg-config.
   2020-01-30 20:42:47 by Adam Ciarcinski | Files touched by this commit (2) | Package updated
Log message:
py-lxml: updated to 4.5.0

Features added
* A new function ``indent()`` was added to insert tail whitespace for pretty-printing
  an XML tree.

Bugs fixed
* Tail text of nodes that get removed from a document using item
  deletion disappeared silently instead of sticking with the node that was removed.

Other changes
* MacOS builds are 64-bit-only by default.
  Set CFLAGS and LDFLAGS explicitly to override it.
* Linux/MacOS Binary wheels now use libxml2 2.9.10 and libxslt 1.1.34.
* The package version number is now available as ``lxml.__version__``.
   2020-01-26 18:32:28 by Roland Illig | Files touched by this commit (981)
Log message:
all: migrate homepages from http to https

pkglint -r --network --only "migrate"

As a side-effect of migrating the homepages, pkglint also fixed a few
indentations in unrelated lines. These and the new homepages have been
checked manually.
   2019-11-26 13:36:20 by Adam Ciarcinski | Files touched by this commit (2) | Package updated
Log message:
py-lxml: updated to 4.4.2

Bugs fixed
* ``ElementInclude`` incorrectly rejected repeated non-recursive
  includes as recursive.
   2019-08-11 14:12:02 by Adam Ciarcinski | Files touched by this commit (2) | Package updated
Log message:
py-lxml: updated to 4.4.1


Bugs fixed

* The order of an OrderedDict was lost in 4.4.0 when passing it as
  attrib mapping during element creation.

* The package metadata now lists the supported Python versions.
   2019-08-03 06:21:13 by Adam Ciarcinski | Files touched by this commit (2) | Package updated
Log message:
py-lxml: updated to 4.4.0


Features added
* Element.clear() accepts a new keyword argument keep_tail=True to
  clear everything but the tail text.  This is helpful in some document-style
  use cases.

* When creating attributes or namespaces from a dict in Python 3.6+, lxml now
  preserves the original insertion order of that dict, instead of always sorting
  the items by name.  A similar change was made for ElementTree in CPython 3.8.
  See https://bugs.python.org/issue34160

* Integer elements in lxml.objectify implement the __index__() special method.

* Read-only elements in XSLT were missing the nsmap property.
  Original patch by Jan Pazdziora.

* ElementInclude can now restrict the maximum inclusion depth via a max_depth
  argument to prevent content explosion.  It is limited to 6 by default.

* The target object of the XMLParser can have start_ns() and end_ns()
  callback methods to listen to namespace declarations.

* The TreeBuilder has new arguments comment_factory and pi_factory to
  pass factories for creating comments and processing instructions, as well as
  flag arguments insert_comments and insert_pis to discard them from the
  tree when set to false.

* A C14N 2.0 <https://www.w3.org/TR/xml-c14n2/>_ implementation was added as
  etree.canonicalize(), a corresponding C14NWriterTarget class, and
  a c14n2 serialisation method.

Bugs fixed
* When writing to file paths that contain the URL escape character '%', the file
  path could wrongly be mangled by URL unescaping and thus write to a different
  file or directory.  Code that writes to file paths that are provided by untrusted
  sources, but that must work with previous versions of lxml, should best either
  reject paths that contain '%' characters, or otherwise make sure that the path
  does not contain maliciously injected '%XX' URL hex escapes for paths like '../'.

* Assigning to Element child slices with negative step could insert the slice at
  the wrong position, starting too far on the left.

* Assigning to Element child slices with overly large step size could take very
  long, regardless of the length of the actual slice.

* Assigning to Element child slices of the wrong size could sometimes fail to
  raise a ValueError (like a list assignment would) and instead assign outside
  of the original slice bounds or leave parts of it unreplaced.

* The comment and pi events in iterwalk() were never triggered, and
  instead, comments and processing instructions in the tree were reported as
  start elements.  Also, when walking an ElementTree (as opposed to its root
  element), comments and PIs outside of the root element are now reported.

* The RelaxNG compact syntax support was broken with recent versions
  of rnc2rng.

* The HTML elements source and track were added to the list
  of empty tags in lxml.html.defs.

* Registering a prefix other than "xml" for the XML namespace is now \ 

* Failing to write XSLT output to a file could raise a misleading exception.
  It now raises IOError.

Other changes
* Support for Python 3.4 was removed.

* When using Element.find*() with prefix-namespace mappings, the empty string
  is now accepted to define a default namespace, in addition to the previously
  supported None prefix.  Empty strings are more convenient since they keep
  all prefix keys in a namespace dict strings, which simplifies sorting etc.

* The ElementTree.write_c14n() method has been deprecated in favour of the
  long preferred ElementTree.write(f, method="c14n").  It will be removed
  in a future release.