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
  • High-level DataFrame convenience API (AtfxFile)

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 (AtfxFile, AtfxStore, AtfxServer, AtfxSession, …)
        _cli.py              atfx subcommand logic
        base_model/          ASAM ODS base model protobuf JSON files
        _atfx_file.py        AtfxFile — high-level DataFrame + JAQueL wrapper
                  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.3.0.tar.gz (46.5 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.3.0-py3-none-any.whl (55.2 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: wodson-1.3.0.tar.gz
  • Upload date:
  • Size: 46.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.17 {"installer":{"name":"uv","version":"0.11.17","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.3.0.tar.gz
Algorithm Hash digest
SHA256 f38de4fe749804658f67ca51dc984f67c1b45c82c8c0d170d41e68fa6d889de8
MD5 a021b7f7fd46ae82acc2cf55d7de43b5
BLAKE2b-256 f42c4f9eb421d672d3fe36b25a10af64bc2a53e346bd0405a4177e25fa43e11d

See more details on using hashes here.

File details

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

File metadata

  • Download URL: wodson-1.3.0-py3-none-any.whl
  • Upload date:
  • Size: 55.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.17 {"installer":{"name":"uv","version":"0.11.17","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.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 6d8ae0696b2815c7139ba9090a6cef76cf0d42b367ee95bced06a90c9113b897
MD5 3e7ed76eef885c45f94a28a444211ed7
BLAKE2b-256 288cc358c5f2ab289709122ac64f1a9fd2c6f4dccebfad25150874fc5c049162

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