udsdoc
AUTOSAR DCM/CanTp/DEM ARXML → UDS (ISO 14229) specification documents (LaTeX → PDF) and ASAM ODX 2.2 / PDX (ISO 22901-1).
udsdoc turns AUTOSAR diagnostic ARXML into a complete UDS specification and
into ODX/PDX for diagnostic tooling. It offers two front-ends over the same
pipeline: a GUI (local browser app) and a CLI (headless, CI/HPC-friendly).
Install
pip install udsdoc # CLI core (LaTeX / Markdown / RST / ODX / PDX)
pip install udsdoc[web] # GUI (udsdoc --serve)
pip install udsdoc[all] # everything (GUI + LLM verify + ECU testing)
PDF output needs a LaTeX distribution with xelatex (TeX Live / MiKTeX).
No pip on the target machine? Grab the self-contained udsdoc.pyz from
Releases — it runs with
just a Python interpreter (python3 udsdoc.pyz input.arxml -o spec.tex).
GUI version
udsdoc --serve # opens http://127.0.0.1:8765
- Inputs — on the Generate tab, pick a BSW repository folder (or a built-in sample). It auto-discovers the ARXML (Dcm / CanTp / Dem) and the C sources; attach an optional Compliance Matrix CSV (+ a sources YAML) for a requirements-compliance chapter.
- Outputs — Generate & Download a LaTeX ZIP that includes a compiled
spec.pdf(Tex → PDF), or Export ODX / PDX for CANalyzer / CANoe. - LLM — the LLM tab connects the provider used by Verify
Conditionally-Accepted comments: Claude (browser sign-in), ChatGPT /
Gemini (paste an API key — the button opens the key page for you), or
local Ollama (pick or install an open-source model). Credentials are
stored locally under
~/.udsdoc/.
CLI version
# ARXML in → LaTeX + compiled PDF out
udsdoc dcm.arxml cantp.arxml --dem dem.arxml --pdf -o spec.tex
# auto-discover a whole BSW repo (ARXML + C sources)
udsdoc --repo /path/to/bsw-project --pdf -o spec.tex
# DID / RID C sources for variable cross-referencing
udsdoc dcm.arxml --c-source did.c --c-source rid.c -o spec.tex
# Compliance Matrix + verify the concluded OEM↔supplier dialogue vs. the
# implementation, emit ISO 22901-1 PDX
udsdoc dcm.arxml --dem dem.arxml \
--compliance-matrix matrix.csv --verify --format pdx -o out/spec
- Inputs — ARXML as positional arguments (+
--dem), or a whole repository via--repo; C sources via--c-source; requirements via--compliance-matrix(+--compliance-matrix-sources). - Outputs —
--format pdf/--pdf(Tex → PDF),--format pdx(ISO 22901-1 PDX; alsotex,tex-zip— the structured multi-file LaTeX project as a ZIP —html,md,rst,odx). Exit codes: 0 ok / 1 runtime error / 2 usage error / 3 quality gate (--verify-strict,--validate,--odx-strict).
Python API:
from udsdoc import ArxmlParser, TexGenerator
spec = ArxmlParser().parse_multi(["dcm.arxml", "cantp.arxml"])
TexGenerator().generate(spec, "spec.tex")
LLM configuration
The Verify feature (does the concluded OEM↔supplier dialogue match the implementation?) works with Anthropic (Claude), any OpenAI-compatible endpoint (OpenAI, Gemini's OpenAI-compatible API, OpenRouter, …) or local Ollama. Configure it once, whichever way suits you:
- GUI — the LLM tab: sign in with Claude, paste a ChatGPT / Gemini key, or pick an Ollama model.
- Env vars —
UDSDOC_LLM_PROVIDER,UDSDOC_LLM_MODEL,UDSDOC_LLM_BASE_URL,UDSDOC_LLM_API_KEY(or a provider-native key such asANTHROPIC_API_KEY/OPENAI_API_KEY/GEMINI_API_KEY). - CLI flags —
--llm-provider,--llm-model,--llm-base-url,--llm-api-key, or--llm-config <file>. - Config file —
~/.udsdoc/llm.json({"provider", "model", "base_url", "api_key", "timeout"}).
--verify alone runs fully offline (deterministic status / numeric / lexical
checks); add --verify-llm to let the LLM judge the prose-ambiguous rows.
License
MIT
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 udsdoc-0.131.0.tar.gz.
File metadata
- Download URL: udsdoc-0.131.0.tar.gz
- Upload date:
- Size: 2.3 MB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
69b54a4f8e27e026eb78f3079f6a8850dd126e30223f91584e2ff7c148a1d5c8
|
|
| MD5 |
9ba89970f541f8649320909a9de69c89
|
|
| BLAKE2b-256 |
1b6158583422fbc9afbc522cb11ca7cde594cc1dfe13673f30b3caf8cd2b1b0b
|
Provenance
The following attestation bundles were made for udsdoc-0.131.0.tar.gz:
Publisher:
udsdoc-ci.yml on YutaroNakagama/udsdoc
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
udsdoc-0.131.0.tar.gz -
Subject digest:
69b54a4f8e27e026eb78f3079f6a8850dd126e30223f91584e2ff7c148a1d5c8 - Sigstore transparency entry: 2197236479
- Sigstore integration time:
-
Permalink:
YutaroNakagama/udsdoc@b822a65d359e20c0c6814039c1705a35809ea714 -
Branch / Tag:
refs/heads/claude/repo-improvement-ideas-58qxhi - Owner: https://github.com/YutaroNakagama
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
udsdoc-ci.yml@b822a65d359e20c0c6814039c1705a35809ea714 -
Trigger Event:
workflow_dispatch
-
Statement type:
File details
Details for the file udsdoc-0.131.0-py3-none-any.whl.
File metadata
- Download URL: udsdoc-0.131.0-py3-none-any.whl
- Upload date:
- Size: 2.1 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
703eefe830d3631544c254fa7466b5337d13132e310868a93688a2c0a58e7a3b
|
|
| MD5 |
ec47dde037ecc1076062eacfa6ed606b
|
|
| BLAKE2b-256 |
f41d482c275d9c66990215b37b979a1dea345f0ac77c80e1f5a433ab1fca13c2
|
Provenance
The following attestation bundles were made for udsdoc-0.131.0-py3-none-any.whl:
Publisher:
udsdoc-ci.yml on YutaroNakagama/udsdoc
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
udsdoc-0.131.0-py3-none-any.whl -
Subject digest:
703eefe830d3631544c254fa7466b5337d13132e310868a93688a2c0a58e7a3b - Sigstore transparency entry: 2197236637
- Sigstore integration time:
-
Permalink:
YutaroNakagama/udsdoc@b822a65d359e20c0c6814039c1705a35809ea714 -
Branch / Tag:
refs/heads/claude/repo-improvement-ideas-58qxhi - Owner: https://github.com/YutaroNakagama
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
udsdoc-ci.yml@b822a65d359e20c0c6814039c1705a35809ea714 -
Trigger Event:
workflow_dispatch
-
Statement type: