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 - 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.
Metadata
Release files for wodson 1.6.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| wodson-1.6.0.tar.gz | 59.7 kB | Without provenance | Details for wodson-1.6.0.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| wodson-1.6.0-py3-none-any.whl | Python 3 | none | any | Details for wodson-1.6.0-py3-none-any.whl |
Total release size: 130.5 kB
Release files / wodson-1.6.0.tar.gz
| Download URL | wodson-1.6.0.tar.gz |
|---|---|
| Size | 59.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
887ab3a9973c0995a22e509a895422a98938eec34d2700b4044d0dfea2343d5c
|
|
BLAKE2b-256 checksum How to use checksums |
bbdb819e1eb4b5492633705ada4cce073b71fa42b928309d8300120617a36bbc
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.12.0 {"installer":{"name":"uv","version":"0.12.0","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}
|
Release files / wodson-1.6.0-py3-none-any.whl
| Download URL | wodson-1.6.0-py3-none-any.whl |
|---|---|
| Size | 70.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
4d9178e4d150c33bb267e149476b3ada6ef1756df8c30132fcd1f41aa573d400
|
|
BLAKE2b-256 checksum How to use checksums |
cd1c15066f75c3a3018c453512bd4b326d3edf12555bbb5fe1d484aa4d0f6c7f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.12.0 {"installer":{"name":"uv","version":"0.12.0","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}
|
Security for wodson 1.6.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.