{"id":47635568,"url":"https://github.com/delb-xml/delb-existdb","last_synced_at":"2026-04-02T00:03:33.304Z","repository":{"id":39664734,"uuid":"201291541","full_name":"delb-xml/delb-existdb","owner":"delb-xml","description":"A Python database interface for eXist-db","archived":false,"fork":false,"pushed_at":"2026-03-01T10:43:26.000Z","size":538,"stargazers_count":15,"open_issues_count":2,"forks_count":1,"subscribers_count":5,"default_branch":"main","last_synced_at":"2026-03-01T14:45:16.348Z","etag":null,"topics":["database-adapter","database-interface","exist-db","python","xml"],"latest_commit_sha":null,"homepage":"https://snakesist.readthedocs.io","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/delb-xml.png","metadata":{"files":{"readme":"README.rst","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2019-08-08T15:57:31.000Z","updated_at":"2026-03-01T10:43:22.000Z","dependencies_parsed_at":"2023-01-25T19:31:29.426Z","dependency_job_id":"109b1b55-6b0d-45c9-a64c-4a449aa3bee9","html_url":"https://github.com/delb-xml/delb-existdb","commit_stats":{"total_commits":139,"total_committers":5,"mean_commits":27.8,"dds":0.5035971223021583,"last_synced_commit":"2e87584913560ecf5b87770c697271a67c424b6d"},"previous_names":["03b8/snakesist","delb-xml/delb-existdb"],"tags_count":5,"template":false,"template_full_name":null,"purl":"pkg:github/delb-xml/delb-existdb","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/delb-xml%2Fdelb-existdb","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/delb-xml%2Fdelb-existdb/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/delb-xml%2Fdelb-existdb/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/delb-xml%2Fdelb-existdb/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/delb-xml","download_url":"https://codeload.github.com/delb-xml/delb-existdb/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/delb-xml%2Fdelb-existdb/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31293160,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-01T21:15:39.731Z","status":"ssl_error","status_checked_at":"2026-04-01T21:15:34.046Z","response_time":53,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["database-adapter","database-interface","exist-db","python","xml"],"created_at":"2026-04-02T00:03:32.013Z","updated_at":"2026-04-02T00:03:33.291Z","avatar_url":"https://github.com/delb-xml.png","language":"Python","readme":"delb-existdb\n============\n\n.. image:: https://img.shields.io/pypi/l/delb-existdb.svg\n    :target: https://github.com/delb-xml/delb-existdb/blob/main/LICENSE.txt\n    :alt: License\n\n.. image:: https://img.shields.io/pypi/pyversions/delb-existdb.svg\n    :alt: Python versions\n\n.. image:: https://readthedocs.org/projects/delb-existdb/badge/?version=latest\n    :target: https://delb-existdb.readthedocs.io/en/latest/\n    :alt: Documentation Status\n\n\n``delb-existdb`` is a Python database interface for eXist-db_, it was initially\nnamed ``snakesist`` until its 0.3 release.\nIt supports basic CRUD operations and uses delb_'s models to represent\ndocuments and nodes.\nIt's available at the Python Package Index as delb-existdb_ package.\n\n``delb-existdb`` allows you to access individual documents from the database using\na ``delb.Document`` object, either by simply passing a URL:\n\n.. code-block:: python\n\n    \u003e\u003e\u003e from delb import Document\n\n    \u003e\u003e\u003e manifest = Document(\n    ...     \"existdb://admin:@localhost:8080/exist/db/manifestos/dada_manifest.xml\"\n    ... )\n    \u003e\u003e\u003e [header.full_text for header in manifest.xpath(\"//head\")]\n    [\"Hugo Ball\", \"Das erste dadaistische Manifest\"]\n\nor by passing a relative path to the document along with a database client\nthat is bound to an eXist `documents collection`_ which you can subsequently\nreuse:\n\n.. code-block:: python\n\n    \u003e\u003e\u003e from delb_existdb import ExistClient\n\n    \u003e\u003e\u003e exist_client = ExistClient(\n    ...     host=\"localhost\",\n    ...     port=8080,\n    ...     user=\"admin\",\n    ...     password=\"\",\n    ...     collection=\"/db/manifestos\"\n    ... )\n    \u003e\u003e\u003e dada_manifest = Document(\"dada_manifest.xml\", existdb_client=exist_client)\n    \u003e\u003e\u003e [header.full_text for header in dada_manifest.xpath(\"//head\")]\n    [\"Hugo Ball\", \"Das erste dadaistische Manifest\"]\n    \u003e\u003e\u003e communist_manifest = Document(\n    ...     \"communist_manifest.xml\", existdb_client=exist_client\n    ... )\n    \u003e\u003e\u003e communist_manifest.xpath(\"//head\").first.full_text\n    \"Manifest der Kommunistischen Partei\"\n\nand not only for accessing individual documents, but also for querying nodes\nacross multiple documents:\n\n.. code-block:: python\n\n    \u003e\u003e\u003e [header.node.full_text for header in exist_client.xpath(\"//*:head\")]\n    [\"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\"]\n\nYou can of course also modify and store documents back into the database or create new ones and store them.\n\n\nYour eXist-db instance\n----------------------\n\n*delb-existdb* leverages eXist's `RESTful API`_ for database operations. This\nmeans that allowing database queries using POST requests on the RESTful API is\na requirement in the used eXist-db instance. eXist allows this by default, so\nif you haven't configured your instance otherwise, don't worry about it.\n\nWe aim to directly support all most recent releases from each major branch.\nYet, there's no guarantee that releases older than two years will be kept as a\ntarget for tests. Pleaser refer to the values\n``tool.hatch.envs.tests.matrix.existdb_version`` in the `pyproject.toml`_ for\nwhat's currently considered.\n\n\n\n.. _delb: https://delb.readthedocs.io/\n.. _documents collection: https://exist-db.org/exist/apps/doc/using-collections\n.. _eXist-db: https://exist-db.org/\n.. _pyproject.toml: https://github.com/delb-xml/delb-existdb/blob/main/pyproject.toml\n.. _RESTful API: https://www.exist-db.org/exist/apps/doc/devguide_rest.xml\n.. _delb-existdb: https://pypi.org/p/delb-existdb\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdelb-xml%2Fdelb-existdb","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdelb-xml%2Fdelb-existdb","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdelb-xml%2Fdelb-existdb/lists"}