Skip to main content
dcclib logo

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 via curl 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)

Source distribution for dcclib 0.4.0
File Size Uploaded
dcclib-0.4.0.tar.gz 85.8 MB Details

Built distribution (wheel)

Table of built distributions (wheels) for dcclib 0.4.0
File Interpreter ABI Platform
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}

Release history Release notifications | RSS feed

This release

0.4.0 This release

2 release files

0.3.0

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page