Skip to content

Installation

Fiducio requires Python ≥ 3.10 and PyTorch ≥ 2.10.

From PyPI

Fiducio is published on PyPI:

pip install fiducio

or, in an existing uv application:

uv add fiducio

The core install depends only on numpy and torch.

If PyTorch is missing, pip installs its default build for your platform. This can include a CUDA runtime and several gigabytes of dependencies. For a CPU-only environment, install CPU PyTorch first:

pip install torch --index-url https://download.pytorch.org/whl/cpu
pip install fiducio

With compatible PyTorch already present, pip keeps that build and adds Fiducio and any missing dependencies.

Why PyTorch ≥ 2.10

The floor is a security choice, not a tested-compatibility limit. Saved calibrators are read with torch.load(..., weights_only=True), and 2.10 is the first release that includes the fixes for CVE-2025-32434 and CVE-2026-24747 (see SECURITY.md). CI tests the minimum (2.10.0) and the locked release. If your environment is pinned to an older PyTorch, upgrade it, or open an issue describing the constraint.

From GitHub

To install the development version directly from the repository:

uv add "fiducio @ git+https://github.com/fiducio-ai/Fiducio.git"

Or with pip:

pip install "git+https://github.com/fiducio-ai/Fiducio.git"

Developing from a checkout

Use uv 0.12.3 and the committed uv.lock:

git clone https://github.com/fiducio-ai/Fiducio.git
cd Fiducio
uv sync --locked --extra docs --group build
uv run --no-sync pytest

The checkout defaults to Python 3.12 and CPU PyTorch for development and CI. The wheel does not impose that backend: applications using CUDA should install Fiducio into their own compatible PyTorch environment. The development lockfile is not inherited by downstream applications.

Optional extras

Heavy or domain-specific dependencies are kept out of the core install and loaded only when you ask for them:

Extra Installs For
fiducio[plots] matplotlib reliability-diagram plots
fiducio[docs] MkDocs Material + mkdocstrings building the docs
fiducio[dev] pytest, pytest-cov, ruff, mypy, build, matplotlib development
fiducio[all] all of the above everything
pip install "fiducio[plots]"

A minimal install can import fiducio and use every calibrator and metric without matplotlib present; matplotlib is only needed for the optional plotting helpers.

Verifying the install

import fiducio

print(fiducio.__version__)
print(fiducio.registered_ids())