Skip to content

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.