Skip to main content

A Python database interface for eXist-db

Project description

License Python versions Documentation Status

delb-existdb is a Python database interface for eXist-db, it was initially named snakesist until its 0.3 release. It supports basic CRUD operations and uses delb’s models to represent documents and nodes. It’s available at the Python Package Index as delb-existdb package.

delb-existdb allows you to access individual documents from the database using a delb.Document object, either by simply passing a URL:

>>> from delb import Document

>>> manifest = Document(
...     "existdb://admin:@localhost:8080/exist/db/manifestos/dada_manifest.xml"
... )
>>> [header.full_text for header in manifest.xpath("//head")]
["Hugo Ball", "Das erste dadaistische Manifest"]

or by passing a relative path to the document along with a database client that is bound to an eXist documents collection which you can subsequently reuse:

>>> from delb_existdb import ExistClient

>>> exist_client = ExistClient(
...     host="localhost",
...     port=8080,
...     user="admin",
...     password="",
...     collection="/db/manifestos"
... )
>>> dada_manifest = Document("dada_manifest.xml", existdb_client=exist_client)
>>> [header.full_text for header in dada_manifest.xpath("//head")]
["Hugo Ball", "Das erste dadaistische Manifest"]
>>> communist_manifest = Document(
...     "communist_manifest.xml", existdb_client=exist_client
... )
>>> communist_manifest.xpath("//head").first.full_text
"Manifest der Kommunistischen Partei"

and not only for accessing individual documents, but also for querying nodes across multiple documents:

>>> [header.node.full_text for header in exist_client.xpath("//*:head")]
["Hugo Ball", "Das erste dadaistische Manifest", "Manifest der Kommunistischen Partei", "I. Bourgeois und Proletarier.", "II. Proletarier und Kommunisten", "III. Sozialistische und kommunistische Literatur", "IV. Stellung der Kommunisten zu den verschiedenen oppositionellen Parteien"]

You can of course also modify and store documents back into the database or create new ones and store them.

Your eXist-db instance

delb-existdb leverages eXist’s RESTful API for database operations. This means that allowing database queries using POST requests on the RESTful API is a requirement in the used eXist-db instance. eXist allows this by default, so if you haven’t configured your instance otherwise, don’t worry about it.

We aim to directly support all most recent releases from each major branch. Yet, there’s no guarantee that releases older than two years will be kept as a target for tests. Pleaser refer to the values tool.hatch.envs.tests.matrix.existdb_version in the pyproject.toml for what’s currently considered.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

delb_existdb-0.4.tar.gz (46.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

delb_existdb-0.4-py3-none-any.whl (13.6 kB view details)

Uploaded Python 3

File details

Details for the file delb_existdb-0.4.tar.gz.

File metadata

  • Download URL: delb_existdb-0.4.tar.gz
  • Upload date:
  • Size: 46.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for delb_existdb-0.4.tar.gz
Algorithm Hash digest
SHA256 1bd38af65d5e3d972b5bec34ef1cc199991eb079a23bc4685a3447a7a7e45d43
MD5 c348766b558642b7a166e309f64b7744
BLAKE2b-256 8ccfad2d82d0135efad7c5b6f70c05f21f5a953c51952498d3e68202312c7e4d

See more details on using hashes here.

Provenance

The following attestation bundles were made for delb_existdb-0.4.tar.gz:

Publisher: publish.yml on delb-xml/delb-existdb

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file delb_existdb-0.4-py3-none-any.whl.

File metadata

  • Download URL: delb_existdb-0.4-py3-none-any.whl
  • Upload date:
  • Size: 13.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for delb_existdb-0.4-py3-none-any.whl
Algorithm Hash digest
SHA256 6652e18ef544b49c91603ca9feb9209891d8a8f4d72c79591ed2d84db0457d56
MD5 22a196b7e58a7af504e0c0d8dd5468af
BLAKE2b-256 583fae2811723f285a21758b2ce68d3469bddc82c6da7a4c50aad8e4da097ef3

See more details on using hashes here.

Provenance

The following attestation bundles were made for delb_existdb-0.4-py3-none-any.whl:

Publisher: publish.yml on delb-xml/delb-existdb

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page