Skip to main content

dccQuantities

dccQuantities is a Python library designed for users of PTB’s Digital Calibration Certificates (DCC) in XML format. It provides an object‑oriented interface to parse, serialize, and manipulate calibration data with full support for uncertainties and units. Arithmetic works naturally on scalars, scalar‑vector mixes, and same‑length vectors element‑wise, preserving uncertainty propagation and metadata throughout.

PyPI Release PyPI Downloads pipeline status Coverage (main) Docs


Key Features

  • DCC XML Parsing & Serialization
    Import certificates from XML into Python objects and export back to XML, JSON, CSV, Excel, or pandas DataFrames.

  • Uncertainty & Unit Awareness
    All quantity objects wrap values as ufloat (via metas_unclib) and units via dsi_unit, ensuring correct propagation in calculations.

  • Object‑Oriented Arithmetic
    Standard operators (+, -, *, /, **) are overloaded on:

    • DccQuantityType: single or tabulated quantities
    • SiRealList, SiComplexList, SiHybrid: 1D/2D arrays
  • Tables & Fancy Indexing The classes DccLongTable and DccFlatTable transparently implement numpy like indexing on efficient table structures described in the table document. Fancy indexing is supported, return type are always new tables.


Linux dependencies

The package requires the Linux .NET library. For that reason, it is required to have installed the mono library:

sudo apt install mono-runtime

Installation

There are multiple ways to install the package. Read them all and choose the best one for your case:

  1. From PyPI (core functionality):
pip install dccQuantities

This will install the latest released changes at the 'main' branch.

  1. Installing unreleased changes:
pip install git+https://gitlab1.ptb.de/digitaldynamicmeasurement/dcc-and-dsi/dccQuantities.git@devel

Please consider that unreleased changes might be unstable and can break your code.

  1. Cloning the repository:
git clone https://gitlab1.ptb.de/digitaldynamicmeasurement/dccQuantities.git
cd dccQuantities
pip install -e .

This is the best option for developers.

Deploy local documentation

It is possible to deploy and read the local documentation. To do so, it is required to clone the repository as stated at '2.' in the Installation section.

Once the repository is cloned and the current working directory is dccQuantities/, install the optional dependencies for documentation:

pip install .[docs]

Now you can deploy and open the documentation by running the following command at your terminal:

quantity-docs

Under the Hood (Test‑Driven Behavior)

The library’s design is guided by its test suite:

  1. Core Parsing (tests/test_parser.py): reads <DccQuantityTable> and <DccQuantityType> elements, building Python objects.
  2. Naming (tests/test_dccName.py): parses and normalizes <DccLangName> entries for multilingual support.
  3. Quantity Discovery (tests/test_quantityTypeCollector.py): auto‑registers data handlers via AbstractQuantityTypeData subclasses.
  4. List Types (tests/test_SiRealList_*.py): handles real, complex, and hybrid lists, including broadcasting and label merging.
  5. Table Flattening (tests/test_tables.py): cover the tables.
  6. Round‑Trip Serialization (tests/test_serilizer.py): ensures parse→serialize yields equivalent XML.
  7. JSON Interchange (tests/test_dccQuantTabJSONDumpingAndLoadingFromFile.json): lossless JSON dump/load.

Contributing & Contact

We welcome improvements, bug reports, and new features. To contribute:

  1. Fork the repository.
  2. Create a feature branch.
  3. Add tests for new functionality.
  4. Submit a merge request.

We highly encourage direct personal contact for design discussions or questions. Feel free to create Issues, even if you think your question/comment is not worth an issue, it is allways!

Or reach out to the maintainer:

License

This project is licensed under the LGPL‑2.1‑or‑later.

Release files for dccQuantities 3.0.4

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for dccQuantities 3.0.4
File Size Uploaded
dccquantities-3.0.4.tar.gz 60.3 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for dccQuantities 3.0.4
File Interpreter ABI Platform
dccquantities-3.0.4-py3-none-any.whl Python 3 none any Details

Total release size: 118.6 kB

Release files / dccquantities-3.0.4.tar.gz

Download URL dccquantities-3.0.4.tar.gz
Size 60.3 kB
Tags Source
SHA-256 checksum
How to use checksums
f7c180dfa4eb7980823f2afe2f1efd9ea9623017c54091cf505b14a3922d5dd5
BLAKE2b-256 checksum
How to use checksums
59d284996724d6a803e55656b622f17309fe031a004efb63df6ee679e4560d51
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.13

Release files / dccquantities-3.0.4-py3-none-any.whl

Download URL dccquantities-3.0.4-py3-none-any.whl
Size 58.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
4852d8ca7341cc72ff276010a67d912a16621a7e15e185c49ad26f8a0387e9bd
BLAKE2b-256 checksum
How to use checksums
dee2d9a42219e62460b1be6baa8ec05dc650a40b29375a44f024c3fdcac590d1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.13

Release history Release notifications | RSS feed

This release

3.0.4 This release

2 release files

3.0.3

2 release files

3.0.2

2 release files

3.0.1

2 release files

3.0.0

2 release files

2.2.0

2 release files

2.1.0

2 release files

1.4.6

2 release files

1.4.5

2 release files

1.4.4

2 release files

1.4.3

2 release files

1.4.2

2 release files

1.4.1

2 release files

1.4.0

2 release files

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