Installation
BONDI 0.1.1 is available on PyPI. Use Python 3.11 or newer. Choose a library installation for your own project, or a source checkout for notebooks and local demo databases.
Install the Python library
In an existing uv project:
uv add bondi
# Include the optional Couchbase SDK when needed:
uv add 'bondi[couchbase]'
Or, in an activated Python virtual environment:
python -m pip install bondi
python -m pip install 'bondi[couchbase]'
PyMongo and its BSON codecs are installed automatically. Couchbase query descriptions
and offline parsing work without the optional SDK; executing Couchbase queries needs it.
For reproducible experiments, pin the release (bondi==0.1.1) and retain your project's
lockfile. The API is still evolving.
Verify installation with uv run python in a uv project, or python in your
activated environment:
python -c "from importlib.metadata import version; import bondi; print(version('bondi'))"
Query construction, schema inspection and saved-response parsing need no database. Continue with the quickstart for an offline example and a database query.
Get notebooks and Docker Compose files
Teaching resources are included in the GitHub source, not in the installed wheel. Clone the matching release:
git clone --branch v0.1.1 https://github.com/relaxed-constraints/bondi.git
cd bondi
uv sync --locked
# If you want to execute Couchbase queries:
uv sync --locked --extra couchbase
Alternatively, download and extract a source archive from the
0.1.1 GitHub release,
then run uv sync --locked in the extracted folder. Git is not required for archives.
Both options provide notebooks/, Compose files, initialization scripts and demo data.
Use Local databases to start and initialize a backend.
Open the notebooks
From the source checkout or extracted release:
uv run --with jupyterlab --with ipykernel jupyter lab
Choose the Python kernel from this environment and open a notebook under notebooks/.
Examples use synchronous APIs: no await or event-loop setup is needed.
Develop BONDI
To work on current development code, clone the default branch without --branch,
then follow Contributing. Use an editable checkout dependency
only when you intentionally want local source changes in another project:
uv add --editable /path/to/bondi
See Building the documentation to preview the site locally.