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.0.0.tar.gz (39.0 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.0.0-py3-none-any.whl (46.6 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: wodson-1.0.0.tar.gz
  • Upload date:
  • Size: 39.0 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.0.0.tar.gz
Algorithm Hash digest
SHA256 208f4d56180d513f6046c5839b7b097316fdab220458684c76e275d734235b17
MD5 47d20c6ba1e5424f09232e8a89b10589
BLAKE2b-256 68eba42010b9a8e1853dc6b46549773ae94f8491c65d78a52cf8134dda6b2538

See more details on using hashes here.

File details

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

File metadata

  • Download URL: wodson-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 46.6 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.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 44d118aeeec9ebfbeddb5278bc5c8b534f94504f32f026b5ad71e094bb1cc44b
MD5 cc9cafb4a3809fd121b991a0b933a75b
BLAKE2b-256 d1a1c8a2d57599b482123ca64059a6f5ebd41a23efb63d3d652e297d60269621

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