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
.datfiles (all standard typespecs) - Loads everything into an in-memory SQLite database
- Exposes
ods.Model(application model) andods.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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file wodson-1.1.0.tar.gz.
File metadata
- Download URL: wodson-1.1.0.tar.gz
- Upload date:
- Size: 40.4 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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7de70a4addb35f7e9ad7bb07ee00ec19cb84bf0ad37dafb55f5acf0a19f604eb
|
|
| MD5 |
5f57f744ab7d9ade51d42cd763997031
|
|
| BLAKE2b-256 |
a009f8e4c401878cd3da0110528953269ce8469116beb8a710d938c12a38eb02
|
File details
Details for the file wodson-1.1.0-py3-none-any.whl.
File metadata
- Download URL: wodson-1.1.0-py3-none-any.whl
- Upload date:
- Size: 48.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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9b0c78d2d7f8eaa249418e6c65940fc35ecb68bf04f43eb545c7a822085820ac
|
|
| MD5 |
4e4ffb163a85cdc6d1a252b7a311237a
|
|
| BLAKE2b-256 |
3d747159c9fb2c3136a9fc38c43506ac17bd451bf263dd2013bb102c9f0d2695
|