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.2.2.tar.gz (45.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.2.2-py3-none-any.whl (53.8 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: wodson-1.2.2.tar.gz
  • Upload date:
  • Size: 45.5 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.2.2.tar.gz
Algorithm Hash digest
SHA256 b928b0bfb1b693e69778f1b83dc5cb895c75bc7d58a135d1e983ede6d406ae74
MD5 8673885c78caf75c7cca6b55ebb5020b
BLAKE2b-256 3b628b10333a453920182eefedd4cb980ccdef3b947e6eac5ae36bde8f664fe1

See more details on using hashes here.

File details

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

File metadata

  • Download URL: wodson-1.2.2-py3-none-any.whl
  • Upload date:
  • Size: 53.8 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.2.2-py3-none-any.whl
Algorithm Hash digest
SHA256 4dd63e7789d1f6cacdbe5b997262f3e2421480a302a3004bcc6bfcb8b1519771
MD5 fa09b0dbd1ae55417fdc7a5367e53c73
BLAKE2b-256 b5abf702bc54eab14bdd2908e4a2d0797063bb083be2cebe0ff670dba4c82258

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