Metadata-Version: 2.1
Name: delb
Version: 0.2.1b1
Summary: A library that provides an ergonomic model for XML encoded text documents (e.g. with TEI-XML).
Home-page: https://github.com/funkyfuture/delb
License: AGPL-3.0
Keywords: xml,markup,text processing
Author: Frank Sachsenheim
Author-email: funkyfuture@riseup.net
Requires-Python: >=3.6,<4.0
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Science/Research
Classifier: License :: OSI Approved :: GNU Affero General Public License v3
Classifier: Natural Language :: English
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Topic :: Text Processing :: Markup :: XML
Provides-Extra: https-loader
Requires-Dist: cssselect
Requires-Dist: fastcache (>=1.1.0,<2.0.0)
Requires-Dist: lxml
Requires-Dist: requests (>=2.21,<3.0); extra == "https-loader"
Requires-Dist: setuptools
Project-URL: Documentation, https://delb.readthedocs.io/
Project-URL: Repository, https://github.com/funkyfuture/delb
Description-Content-Type: text/x-rst

delb
====

|latest-version| |rtd| |python-support| |license| |black|

``delb`` is a library that provides an ergonomic model for XML encoded text
documents (e.g. TEI-XML_) for the Python programming language.
It fills a gap for the humanities-related field of software development towards
the excellent (scientific) communities in the Python ecosystem.

For a more elaborated discussion see the *Design* chapter of the documentation.

.. _TEI-XML: https://tei-c.org


Features
--------

- Loads documents from various source types. This is customizable and
  extensible.
- XML DOM types are represented by distinct classes.
- A completely type-annotated API.
- Consistent design regarding names and callables' signatures.
- Shadows comments and processing instructions by default.
- Querying with XPath and CSS expressions.
- Applying XSL Transformations.


Development status
------------------

You're invited to submit tests that reflect desired use cases or are merely of
theoretical nature. Of course, any kind of proposals for or implementations of
improvements are welcome as well.


Related Projects & Testimonials
-------------------------------

snakesist_ is an eXist-db client that uses ``delb`` to expose database
resources.

Kurt Raschke `noted in 2010`_::

  In a DOM-based implementation, it would be relatively easy […]
  But lxml doesn't use text nodes; instead it uses and properties to hold text
  content.


.. _snakesist: https://pypi.org/project/snakesist/
.. _noted in 2010: https://web.archive.org/web/20190316214219/https://kurtraschke.com/2010/09/lxml-inserting-elements-in-text/

ROADMAPish
----------

- gain insights from usage experience
- implement the API in Rust
- provide bindings for Python and Javascript to the Rust implementation, while
  nurturing the lxml-based implementation as reference for some time
- be finished before the Digital Humanities community realizes how to foster a
  viable software ecosystem and fund such efforts


.. |black| image:: https://img.shields.io/badge/code%20style-black-000000.svg?style=flat-square
   :alt: Black code style
   :target: https://black.readthedocs.io/
.. |latest-version| image:: https://img.shields.io/pypi/v/delb.svg?style=flat-square
   :alt: Latest version on PyPI
   :target: https://pypi.org/project/delb
.. |license| image:: https://img.shields.io/pypi/l/delb.svg?style=flat-square
   :alt: License
   :target: https://github.com/funkyfuture/delb/blob/main/LICENSE.txt
.. |python-support| image:: https://img.shields.io/pypi/pyversions/delb.svg?style=flat-square
   :alt: Python versions
.. |rtd| image:: https://img.shields.io/badge/RTD-Docs-informational.svg?style=flat-square
   :alt: Documentation
   :target: https://delb.readthedocs.io/

