Skip to main content

ASAM ODS tools collection — ATFX reader, HTTP server, and more (experimental)

Project description

wodson

A collection of ASAM ODS tools.

Features

Experimental ATFX parser

This is an experimental ATFX reader. Target is not correctness or completeness, but a working prototype that can read some real-world ATFX files and be used as a base for further experiments. It currently supports:

  • Parses ATFX XML files (ASAM ODS 5.1, 5.3, 6.2 schemas)
  • Reads optional external binary .dat files (all standard typespecs)
  • Loads everything into an in-memory SQLite database
  • Exposes ods.Model (application model) and ods.DataMatrices (data-read)
  • Embeddable Python library (AtfxStore)
  • Standalone HTTP server compatible with odsbox.ConI (AtfxServer)
  • CLI: uv run wodson atfx serve --file path/to/file.atfx

Requirements

Installation

pip install wodson
# or with uv:
uv add wodson

Quick Start

See docs/atfx.md for usage examples (embedded library, HTTP server, CLI).

Project Layout

src/wodson/
    __init__.py          Package root
    _cli.py              CLI entry point (wodson atfx serve …)
    atfx/
        __init__.py          Public API (AtfxStore, AtfxServer, AtfxSession, …)
        _cli.py              atfx subcommand logic
        base_model/          ASAM ODS base model protobuf JSON files
                  ODSBaseModel_asam37.protobuf.json
        _atfx_store.py       AtfxStore — parses + loads ATFX into SQLite
        _server.py           AtfxServer — ASAM ODS HTTP server
        _session.py          AtfxSession — in-process requests adapter
        _base_model.py       Loads ODSBaseModel JSON → ods.BaseModel
        _model_builder.py    Builds ods.Model from <application_model> XML
        _instance_parser.py  Parses <instance_data> (inline + external)
        _binary_reader.py    Reads external .dat binary files via numpy
        _db.py               SQLite schema creation + instance loading
        _data_read.py        SelectStatement → SQL → DataMatrices
        _xml_utils.py        Namespace-aware XML element lookup helpers
        _naming.py           ODS name → SQLite identifier utilities
docs/
    atfx.md              ATFX reader quick-start guide
    USAGE.md             Full end-user usage guide
    spec/                ASAM schema files and base model JSON
tests/                   pytest test suite

Development

# Install with dev dependencies
uv sync

# Run tests
uv run pytest tests/ -v

# Lint
uv run ruff check src/ tests/

# Type check
uv run mypy --strict src/

See docs/USAGE.md for detailed end-user documentation.

Project details


Download files

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

Source Distribution

wodson-1.1.1.tar.gz (44.1 kB view details)

Uploaded Source

Built Distribution

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

wodson-1.1.1-py3-none-any.whl (52.2 kB view details)

Uploaded Python 3

File details

Details for the file wodson-1.1.1.tar.gz.

File metadata

  • Download URL: wodson-1.1.1.tar.gz
  • Upload date:
  • Size: 44.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.16 {"installer":{"name":"uv","version":"0.11.16","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 wodson-1.1.1.tar.gz
Algorithm Hash digest
SHA256 fa5732379be658104aa31b3d75f6f14796e3ef4a0605aab3036a85903927aae6
MD5 4aeeb171eb01c6ee041fc5ec48ff6f73
BLAKE2b-256 e09510775d750ed4fa624bda948db34682e55a5662f25ac85c524ca4cd5156ca

See more details on using hashes here.

File details

Details for the file wodson-1.1.1-py3-none-any.whl.

File metadata

  • Download URL: wodson-1.1.1-py3-none-any.whl
  • Upload date:
  • Size: 52.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.16 {"installer":{"name":"uv","version":"0.11.16","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 wodson-1.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 3edf472013a5aedb84e6054ec5daadfa96245eddf1128dcec37a283e6d82066f
MD5 c863d00a49596be1bc5c29985453a10c
BLAKE2b-256 478ac5a619d5ff01c06b46193902508bf410dc8d489780608c7b1670ff65fb99

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page