Skip to main content

ASAM ODS EXD-API MDF4 plugin

Build PyPI version Python versions License: MIT

This repository contains a ASAM ODS EXD-API plugin that uses asammdf to read the ASAM MDF4 files.

It is built on the ods-exd-api-box helper library which provides the gRPC server infrastructure and proto stubs.

Content

Implementation

  • external_data_file.py
    Implements the ExdFileInterface from ods-exd-api-box to access MDF4 files using asammdf. Also contains the entry point to run the gRPC service.

Tests

Development

Setup

Install uv and then install the project with dev dependencies:

uv sync --group dev

Run Tests

uv run python -m unittest discover tests

Run Plugin Locally

Use an explicit IPv4 bind address on Windows to avoid IPv6 bind issues:

uv run asam-ods-exd-api-mdf4 --bind-address 127.0.0.1 --port 50051

Stop the server with Ctrl+C. A non-zero exit code after interruption is expected.

Run Plugin With uvx

Run the latest published package without installing it into the current project environment:

uvx asam-ods-exd-api-mdf4 --bind-address 127.0.0.1 --port 50051

Code Quality

uv sync --group dev                    # 1. Install all dependencies
uv run ruff format .                   # 2. Format code
uv run ruff check --fix .              # 3. Fix lint violations
uv run mypy external_data_file.py      # 4. Type check
uv run python -m unittest discover tests  # 5. Run tests

Docker

Docker Image Details

The Docker image for this project is available at:

ghcr.io/peak-solution/asam-ods-exd-api-mdf4:latest

This image is automatically built and pushed via a GitHub Actions workflow. To pull and run the image:

docker pull ghcr.io/peak-solution/asam-ods-exd-api-mdf4:latest
docker run -v /path/to/local/data:/data -p 50051:50051 ghcr.io/peak-solution/asam-ods-exd-api-mdf4:latest

Using the Docker Container

To build the Docker image locally:

docker build -t asam-ods-exd-api-mdf4 .

To start the Docker container:

docker run -v /path/to/local/data:/data -p 50051:50051 asam-ods-exd-api-mdf4

have a look at start options to figure out how to customize the behavior of the EXD-API plugin.

Architecture and Usage in ODS Server

sequenceDiagram

actor CLIENT as Client
participant PDTT as 🛠️Importer
participant PODS as 🗃️ASAM ODS server
participant PLUGIN as 📊EXD-API plugin
participant FILE as 🗂️File Storage

autonumber

opt Import phase
  FILE ->>+ PDTT: New file shows up
  PDTT ->>+ PLUGIN : Get Structure
  PLUGIN -> FILE: Extract content information
  PLUGIN ->> PLUGIN: Create Structure
  PLUGIN ->>- PDTT: Return Structure
  PDTT ->> PODS: Import ODS structure
  Note right of PDTT: Create hierarchy<br/>AoTest,AoMeasurement,...
  PDTT ->>- PODS: Add External Data info
  Note right of PDTT: Attach AoFile ... for external data<br/>AoFile,AoSubmatrix,AoLocalColumn,...
end

Note over CLIENT, FILE: Now we can work with the imported files

loop Runtime phase
  CLIENT ->> PODS: Establish ODS session
  CLIENT ->> PODS: Work with meta data imported from structure
  CLIENT ->> PODS: Access external channel in preview
  PODS ->> PLUGIN: GetValues
  PLUGIN ->> FILE: Get Channel values
  PLUGIN ->> PODS: Return values of channels
  PODS ->> CLIENT: Return values needed for plot
end

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

asam_ods_exd_api_mdf4-1.2.3.tar.gz (18.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

asam_ods_exd_api_mdf4-1.2.3-py3-none-any.whl (8.1 kB view details)

Uploaded Python 3

File details

Details for the file asam_ods_exd_api_mdf4-1.2.3.tar.gz.

File metadata

  • Download URL: asam_ods_exd_api_mdf4-1.2.3.tar.gz
  • Upload date:
  • Size: 18.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.29 {"installer":{"name":"uv","version":"0.11.29","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for asam_ods_exd_api_mdf4-1.2.3.tar.gz
Algorithm Hash digest
SHA256 ddcafa97b3ffaf9a198c23bbfbcf42f344ccf40fcaba125ef6578eea5599178c
MD5 891f33012559dbf25808b2cfe0f5dacb
BLAKE2b-256 f3366465f16a9c37dcafe8e3a100b2e8b1e9acca85dad202e5e697975f208888

See more details on using hashes here.

File details

Details for the file asam_ods_exd_api_mdf4-1.2.3-py3-none-any.whl.

File metadata

  • Download URL: asam_ods_exd_api_mdf4-1.2.3-py3-none-any.whl
  • Upload date:
  • Size: 8.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.29 {"installer":{"name":"uv","version":"0.11.29","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for asam_ods_exd_api_mdf4-1.2.3-py3-none-any.whl
Algorithm Hash digest
SHA256 4fcb25f32687e4a3e5a5772051ccd668898a19655cc6c53d3d2a4fa458d57c7d
MD5 38ac90f023ca53b8cd5a35033831e6fd
BLAKE2b-256 3c871c7e63663f6f490b7a45e8b85b5587a6b6d01a016c439049993c9fc71c14

See more details on using hashes here.

Release history Release notifications | RSS feed

1.2.4

2 files

This release

1.2.3 This release

2 files

1.2.2

2 files

1.2.1

2 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