Delb

Latest version: v0.4

Safety actively analyzes 681812 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 1 of 2

0.5rc1

--------------------

This iteration took quiet long to complete as it presumably solved the hardest
problem on the way to shed off the essential dependency on ``lxml``, also
resulting in human-friendly serializations that achieve unprecedented clarity.
The library's robustness is now proven with integration tests that are verified
against eleven diverse TEI encoded corpora that sum up to more than 360k
documents with a total volume of 3.33 GB.

News
~~~~

- *delb* is now autonomously serializing contents, the :doc:`api/serialization`
chapter details current capabilities and interfaces.
- The `HTML documentation`_ received a big revision for pleasant discovery and
reading.
- Methods that add nodes to a tree now return the added concrete nodes.
- The new :func:`delb.compare_trees` is available to compare nested
contents.
- ⚠️ :attr:`delb.ParserOptions.collapse_whitespace` was renamed to
:attr:`delb.ParserOptions.reduce_whitespace`, as there is now
:meth:`delb.Document.reduce_whitespace` to reflect that they also trim
excessive whitespace.
- ⚠️ :attr:`delb.Document.head_nodes` was renamed to
:attr:`delb.Document.prologue`, :attr:`delb.Document.tail_nodes` to
:attr:`delb.Document.epilogue`.
- ⚠️ :func:`delb.get_traverser` now only accepts keyword arguments.
- ⚠️ Support for Python 3.7 was removed.
- Support for Python 3.12 and 3.13 was added.
- ⚠️ The :func:`_delb.plugins.core_loaders.etree_loader` is marked as
deprecated.

Previously deprecated contents have been removed.

.. _HTML documentation: https://delb.readthedocs.io/

0.4

----------------

News
~~~~

- *delb* now uses its own XPath implementation, please investigate
:mod:`_delb.xpath` for details.
- ⚠️ Many of the nodes' methods that relate to relative nodes have been renamed.
Watch out for :class:`DeprecationWarning`\s!
- ⚠️ The method :meth:`delb.NodeBase.iterate_descendants` is added as a
replacement for the former :meth:`delb.NodeBase.child_nodes` invoked with the
now deprecated argument ``recurse``.
- ⚠️ The ``https-loader`` extension is now required for loading documents via
plain and secured HTTP connections.
- Under the hood httpx_ is now employed as HTTP/S client.
- ⚠️ The contributed loader for FTP connections is marked as deprecated.
- ⚠️ The ``parser`` argument to :class:`delb.Document` and
:meth:`delb.TagNode.parse` is deprecated and replaced by ``parser_options``.
- ⚠️ :meth:`delb.Document.xslt` is marked as deprecated.
- ⚠️ Evoked exceptions changed in various places.
- ⚠️ Document mixin extensions are now facilitated by subclassing
:class:`_delb.plugins.DocumentMixinBase`. It replaces
:class:`_delb.plugins.DocumentExtensionHooks` and
:meth:`_delb.plugins.PluginManager.register_document_mixin` without a
backward-compatible mechanic.
- Support for the very good Python 3.10 and the even better 3.11 is added.
- The code repository is now part of an umbrella namespace for related projects:
https://github.com/delb-xml/
- A ``CITATION.cff`` is available in the repository and shipped with source
distributions for researchers that are citing_ their employed software.

.. _citing: https://citation-file-format.github.io/
.. _httpx: https://www.python-httpx.org/

0.3

----------------

News
~~~~

- Adds the :meth:`delb.TagNode.fetch_or_create_by_xpath` method.
- ⚠️Because of that a pre-mature parser of XPath expressions has been
implemented and you can expect some expressions to cause failures, e.g.
with functions that take more than one argument.
- Subclasses of :class:`delb.Document` can claim to be the default class based
on the evaluation of a document's content and configuration by implementing
``__class_test__``.
- ⚠️ :meth:`_delb.plugins.PluginManager._register_document_extension` is renamed
to :meth:`_delb.plugins.PluginManager._register_document_mixin`.
- ⚠️ :meth:`_delb.plugins.DocumentExtensionHooks` is renamed to
:meth:`_delb.plugins.DocumentMixinHooks`.
- ⚠️ :meth:`_delb.plugins.DocumentMixinHooks._init_config` is now a
:func:`classmethod` and now also takes the config namespace as first argument.
- Adds :meth:`delb.Document.collapse_whitespace` and the initialization option
for :class:`delb.Document` instances with the same name.
- Adds the ``retain_child_nodes`` argument to :meth:`delb.NodeBase.detach`.
- Adds the :attr:`delb.NodeBase.last_descendant` property.
- Adds the :attr:`delb.TagNode.id` property.
- Adds the :meth:`delb.TagNode.parse` method.
- ⚠️ :meth:`TagNode.qualified_name` is marked deprecated and the same property
is now available as :meth:`TagNode.universal_name`.
- Adds support for Python 3.9 & 3.10.
- ⚠️ Drops support for Python 3.6
- Uses GitHub actions for CI checks.

Fixes
~~~~~

- Detached :class:`delb.TagNode` s now drop references to :class:`delb.TextNode`
siblings.
- Ensures that :attr:`delb.TagNode.location_path` always consists of indexed
steps (``/*[i]``) only.
- Avoids hitting the interpreter's recursion limit when iterating in stream
dimension.

0.2

----------------

News
~~~~

- Adds a logo. Gracious thanks to sm!
- Adds :doc:`plugin mechanics </api/extending>`. Graciae ad infinitum, TC!
- CSS and XPath query results are wrapped in :class:`delb.QueryResults`.
- Adds :attr:`delb.Document.head_nodes` and :attr:`delb.Document.tail_nodes`
that allow access to the siblings of a root node.
- Adds the :attr:`delb.Document.source_url` property.
- Adds :func:`delb.get_traverser` and two traverser implementations that yield
nodes related to a root node according to their defined order.
- Document loaders report back the reason why they would or could not load a
document from the given object.
- Various documentation improvements, including table of contents for class
members.

0.1.2

------------------

There's nothing super-exciting to report here. It's just getting better.

0.1.1

------------------

This was quiet boring, it serves updated dependencies for what it's worth.

Page 1 of 2

Links

Releases

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.