dcclib
A modular Python library for working with Digital Calibration Certificates (DCCs), complete with a CLI and REST API.
[Documentation](https://gitlab-pages.ptb.de/d-ptb/dcc/dcclib/) | [Releases](https://gitlab1.ptb.de/d-ptb/dcc/dcclib/-/releases) | [Issues](https://gitlab1.ptb.de/d-ptb/dcc/dcclib/-/issues)
[[TOC]]
Overview
dcclib is a comprehensive monorepo that houses:
dcclib: Core library with essential tools for handling DCCs and other XML-based files.dcclib-cli: Command Line Interface for quick access to library features.dcclib-rest-api: RESTful API for integrating the library functionality into web services.
Whether you're converting, validating, or extracting information from DCCs, this library provides structured and reusable components to streamline your workflow.
Full documentation (architecture overview, CLI reference, REST API docs, and API reference) is available at the project documentation site.
Installation
Using pip
# Install the library in a virtual environment
pip install dcclib
# or install the CLI globally
pipx install "dcclib[cli]"
# with MCP support for AI agents
pipx install "dcclib[cli,mcp]"
# and with unit-aware quantities support using dccQuantities (requires .NET on Windows and libmono on Linux)
pipx install "dcclib[cli,quantities]"
# and everything for the full experience
pipx install "dcclib[cli,mcp,quantities]"
Using docker
# Run the CLI in the current directory, replacing <command> with the desired command
docker run --rm -v $(pwd):/app registry.gitlab1.ptb.de/d-ptb/dcc/dcclib/cli:latest <command>
# Run the REST API on port 8080
docker run --rm -p 8080:8080 registry.gitlab1.ptb.de/d-ptb/dcc/dcclib/rest-api:latest
Development Setup
Requirements
- Git
mise(install viacurl https://mise.run | sh), optional but recommended- Python (via mise)
uv(via mise)
Getting Started
# Clone the repository
git clone https://gitlab1.ptb.de/d-ptb/dcc/dcclib.git
cd dcclib
# Install all dependencies
mise run setup # or: uv sync --all-packages
Run mise tasks ls for the full list of available tasks. Common ones:
| Task | Description |
|---|---|
mise run test |
Full test suite |
mise run lint |
Lint with auto-fix |
mise run format |
Format all files |
mise run run:cli |
Start the CLI |
mise run run:api |
Start the REST API |
mise run docs:serve |
Live-preview the docs at http://localhost:8000 |
mise run docs:build |
Build the docs into public/ |
Publications and acknowledgments
This project was developed as part of the bachelor thesis of Jan Loewe at the Ostfalia University of Applied Sciences.
More information on dcclib itself can be found in the presentation by Jan Loewe and Justin Jagieniak at the 6th International DCC Conference in 2026.
The formula module is based on previous work conducted by Justin Jagieniak, Siegfried Hackel and Jan Loewe first presented at the 5th International DCC Conference in 2025.
Automatic uncertainty propagation is implemented using dccQuantities which internally relies on METAS UncLib.
dccQuantities was also presented at the 6th International DCC Conference by Jaime Gonzalez-Gomez, Benedikt Seeger and Vanessa Stehr.
Metadata
Release files for dcclib 0.4.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| dcclib-0.4.0.tar.gz | 85.8 MB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| dcclib-0.4.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 85.9 MB
Release files / dcclib-0.4.0.tar.gz
| Download URL | dcclib-0.4.0.tar.gz |
|---|---|
| Size | 85.8 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
d80d9810d246b3c776f7d809ebf08ce1788bf8f18f7d4bcb9f0983ed286afbbc
|
|
BLAKE2b-256 checksum How to use checksums |
01bde9d64278fa2e31142fae41ef84f08a06f05508c2e7123dbe21b043993144
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.11.0 {"installer":{"name":"uv","version":"0.11.0","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Debian GNU/Linux","version":"13","id":"trixie","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / dcclib-0.4.0-py3-none-any.whl
| Download URL | dcclib-0.4.0-py3-none-any.whl |
|---|---|
| Size | 56.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
7de11abaa373a3c40571c395674c8c98c0a3c89b1bdc42e5b0ecf34813cd95a3
|
|
BLAKE2b-256 checksum How to use checksums |
2f102da80a7100401f5a084b5929767d1da5893d352cac4401e880cfbf6da74a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.11.0 {"installer":{"name":"uv","version":"0.11.0","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Debian GNU/Linux","version":"13","id":"trixie","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|