Skip to content

Releases: delb-xml/delb-py

delb 0.6-rc1

30 Nov 16:20

Choose a tag to compare

delb 0.6-rc1 Pre-release
Pre-release

This release brings significant changes that evolve delb to a mature level, namely:

  • 🎇 All data keeping is now implemented natively without lxml, leading to remarkable performance improvements.
  • 🎉 There's a new parser interface for extensiblity.
  • 🪩 The API can be considered stable.

At least 99.5% of all code is guaranteed to be covered by tests. The accompanying integration test corpora have been updated and extended.

News

  • ⚠️ For more clarity the symbols that are re-exported in the top-level module delb are greatly reduced. Instead they're to be imported from their domain specific modules delb.filters, delb.names, delb.nodes and delb.utils. Some generally applicable ones will stay available for convenice though.
  • There are new abstract base classes for each node type rooting from delb.typing.XMLNodeType that should be used for type annotations.
  • ⚠️ Functions to construct new node instances such as delb.nodes.new_tag_node are deprecated. The corresponding, concrete node classes are now to be instantiated directly.
  • A new parser interface allows the use of arbitrary parsing backends. Support for the standard library's expat interface and lxml are contributed. For details see „Installation” and delb.parser.ParserOptions.
  • When a used parser backend supports DTDs, it can be instructed with the delb.parser.ParserOptions.load_referenced_resources option to consider these.
  • New parsing related exceptions have been added: delb.exceptions.ParsingError bases delb.exceptions.ParsingProcessingError and delb.exceptions.ParsingValidityError.
  • ⚠️ The delb.parser.ParserOptions.resolve_entities option has been removed entirely as delb's data model doesn't include any entities.
  • The W3C's parser conformance test suite is included in delb's.
  • ⚠️ delb.parse_tree replaces delb.TagNode.parse to produce tag nodes from a serialized tree. The new delb.parse_nodes produces an iterator over (sub-)trees (possibly an XML document fragment).
  • ⚠️ The installation extra https-loader is renamed to web-loader
  • ⚠️ The parser_options must now be passed as keyword argument to a delb.Document.
  • A source_url can now be passed explicitly when instantiating a delb.Document.
  • ⚠️ The delb.nodes.TagNode.prefix attribute is gone.
  • ⚠️ Support for Python 3.9 was removed and for Python 3.14 it's added.

The package distributions are available at the Python Package Index.

delb 0.6-rc0

05 Nov 21:02

Choose a tag to compare

delb 0.6-rc0 Pre-release
Pre-release

This release brings significant changes that evolve delb to a mature level, namely:

  • 🎇 All data keeping is now implemented natively without lxml, leading to remarkable performance improvements.
  • 🎉 There's a new parser interface for extensiblity.
  • 🪩 The API can be considered stable.

At least 99.5% of all code is guaranteed to be covered by tests. The accompanying integration test corpora have been updated and extended.

News

  • ⚠️ For more clarity the symbols that are re-exported in the top-level module delb are greatly reduced. Instead they're to be imported from their domain specific modules delb.filters, delb.names, delb.nodes and delb.utils Some generally applicable ones will stay available for convenice though.
  • There are new abstract base classes for each node type rooting from delb.typing.XMLNodeType that should be used for type annotations.
  • ⚠️ Functions to construct new node instances such as delb.nodes.new_tag_node are deprecated. The corresponding, concrete node classes are now to be instantiated directly.
  • A new parser interface allows the use of arbitrary parsing backends. Support for the standard library's expat interface and lxml are contributed. For details see „Installation” and delb.parser.ParserOptions.
  • When a used parser backend supports DTDs, it can be instructed with the delb.parser.ParserOptions.load_referenced_resources option to consider these.
  • New parsing related exceptions have been added: delb.exceptions.ParsingError bases delb.exceptions.ParsingProcessingError and delb.exceptions.ParsingValidityError.
  • ⚠️ The delb.parser.ParserOptions.resolve_entities option has been removed entirely as delb's data model doesn't include any entities.
  • The W3C's parser conformance test suite is included in delb's.
  • ⚠️ delb.parse_tree replaces delb.TagNode.parse to produce tag nodes from a serialized tree. The new delb.parse_nodes produces an iterator over (sub-)trees (possibly an XML document fragment).
  • ⚠️ The installation extra https-loader is renamed to web-loader
  • ⚠️ The parser_options must now be passed as keyword argument to a delb.Document.
  • A source_url can now be passed explicitly when instantiating a delb.Document.
  • ⚠️ The delb.nodes.TagNode.prefix attribute is gone.
  • ⚠️ Support for Python 3.9 was removed and for Python 3.14 it's added.

The package distributions are available at the Python Package Index.

delb 0.5.1

08 Jan 22:38

Choose a tag to compare

News

Further deprecations that emit messages with hints to alternatives if available:

  • NodeBase.new_tag_node
  • Empty / null namespaces will generally be represented as empty strings in the future.
  • TagNode.parse

The package distributions are available at the Python Package Index.

delb 0.5

01 Jan 20:22

Choose a tag to compare

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 „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 delb.compare_trees is available to compare nested contents.
  • ⚠️ To align with Python standard behaviour, accessing a non-existing attribute with subscript notation now raises a KeyError.
  • ⚠️ The use of namespace declarations (to prefixes) that were used in a parsed source stream is deprecated. Notably queries will not use them as fallback when invoked without the namespaces argument. Instead they will likely use the called-on node's namespace as default namespace.
  • ⚠️ delb.ParserOptions.collapse_whitespace was renamed to delb.ParserOptions.reduce_whitespace, as there is now delb.Document.reduce_whitespace to reflect that they also trim excessive whitespace.
  • ⚠️ The Xpath evaluation expressions of absolute paths on the child axis in the first location step is fixed. Consider to double check your usages.
  • Comparing TagNode instances is now de facto an identity check. The previous behaviour can be achieved by comparing TagNode.universal_name and TagNode.attributes.
  • ⚠️ delb.Document.head_nodes was renamed to delb.Document.prologue, delb.Document.tail_nodes to delb.Document.epilogue.
  • ⚠️ 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 _delb.plugins.core_loaders.etree_loader is marked as deprecated.

Previously deprecated contents have been removed.


The package distributions are available at the Python Package Index.

delb 0.5-rc2

16 Dec 15:39

Choose a tag to compare

delb 0.5-rc2 Pre-release
Pre-release

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 „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 delb.compare_trees is available to compare nested contents.
  • ⚠️ The use of namespace declarations (to prefixes) that were used in a parsed source stream is deprecated. Notably queries will not use them as fallback when invoked without the namespaces argument. Instead they will likely use the called-on node's namespace as default namespace.
  • ⚠️ delb.ParserOptions.collapse_whitespace was renamed to delb.ParserOptions.reduce_whitespace, as there is now delb.Document.reduce_whitespace to reflect that they also trim excessive whitespace.
  • ⚠️ The Xpath evaluation expressions of absolute paths on the child axis in the first location step is fixed. Consider to double check your usages.
  • Comparing TagNode instances is now de facto an identity check. The previous behaviour can be achieved by comparing TagNode.universal_name and TagNode.attributes.
  • ⚠️ delb.Document.head_nodes was renamed to delb.Document.prologue, delb.Document.tail_nodes to delb.Document.epilogue.
  • ⚠️ 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 _delb.plugins.core_loaders.etree_loader is marked as deprecated.

Previously deprecated contents have been removed.


The package distributions are available at the Python Package Index.

delb 0.5-rc1

02 Nov 23:12

Choose a tag to compare

delb 0.5-rc1 Pre-release
Pre-release

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

Previously deprecated contents have been removed.


The package distributions are available at the Python Package Index.

delb 0.5-rc0

02 Nov 22:59

Choose a tag to compare

delb 0.5-rc0 Pre-release
Pre-release

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

Previously deprecated contents have been removed.


The package distributions are available at the Python Package Index.