Pydantic models for the German MaKo (Marktkommunikation) processes and serialization of those models to output formats (YAML, WSD sequence-diagram DSL, BPMN, Markdown).
Project description
makoralle 🪸
makoralle provides pydantic models for the German
MaKo (Marktkommunikation) processes together with serializers that turn those
models into the output formats used downstream:
- YAML – process and EBD (Entscheidungsbaum-Diagramm) representations
- WSD – the websequencediagrams DSL for sequence diagrams
- BPMN – business process model XML
- Markdown – human-readable process documentation
It is the shared, dependency-light foundation (only pydantic and PyYAML) consumed by
the private makorele parser and by the process-documentation webapp.
Separation of concerns
Part of the Hochfrequenz MaKo tooling — four repositories, one responsibility each:
- makoralle (public, PyPI) — the data model + serializers. ← this repo
- makorele (private) — the parser (BDEW PDFs → validated models).
- machine-readable_mako-prozesse (private) — the generated dataset, consumed at a pinned tag.
- mako_prozesse — the web app that presents the dataset.
Dependencies flow one way: makorele → makoralle; the dataset is produced by the tooling and consumed by the web app at a pinned tag. makoralle imports neither the parser nor the app.
Installation
pip install makoralle
Usage
The public serialization API is exposed at the package root and resolved lazily
(importing makoralle, or a light submodule like makoralle.grouping, does not
eagerly pull in the serialization stack):
from makoralle import emit_yaml, emit_wsd, emit_markdown, emit_bpmn
from makoralle.models.process import Process
# build or load a Process model, then serialize it
yaml_text = emit_yaml(process)
wsd_text = emit_wsd(process.sequence_diagrams[0])
The models live under makoralle.models (process, ebd, pid, activity, chunk)
and the serializers under makoralle.serialization.
Development
This project uses the Hochfrequenz src-layout Python template
with tox. To set up a development environment:
tox -e dev
Run the unit tests, linting, type checks and coverage:
tox -e tests
tox -e linting
tox -e type_check
tox -e coverage
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 makoralle-0.0.2.tar.gz.
File metadata
- Download URL: makoralle-0.0.2.tar.gz
- Upload date:
- Size: 39.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5f618356b892739c76f9515baca93ba66068cdf0635417806baf376ca2778fc1
|
|
| MD5 |
3ee7264a2a512673905e23c6e152320b
|
|
| BLAKE2b-256 |
111f8250a0c3913cd5cd87741e89774687305f7cab2bea2ad0f34008512da695
|
Provenance
The following attestation bundles were made for makoralle-0.0.2.tar.gz:
Publisher:
python-publish.yml on Hochfrequenz/makoralle
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
makoralle-0.0.2.tar.gz -
Subject digest:
5f618356b892739c76f9515baca93ba66068cdf0635417806baf376ca2778fc1 - Sigstore transparency entry: 2048561972
- Sigstore integration time:
-
Permalink:
Hochfrequenz/makoralle@3e8c3485360c6b6e3eb5b4a5f1ad6b1ce89a0294 -
Branch / Tag:
refs/tags/v0.0.2 - Owner: https://github.com/Hochfrequenz
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
python-publish.yml@3e8c3485360c6b6e3eb5b4a5f1ad6b1ce89a0294 -
Trigger Event:
release
-
Statement type:
File details
Details for the file makoralle-0.0.2-py3-none-any.whl.
File metadata
- Download URL: makoralle-0.0.2-py3-none-any.whl
- Upload date:
- Size: 40.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2cfbededd7baea8a8a1e2dbce886138f30336bd6833bae2f285fdd7d49679ca4
|
|
| MD5 |
dc4c18a5f3a1b457871aa2e3fa21705f
|
|
| BLAKE2b-256 |
c73ca697399b6b0f3ab391445d5130b1f507fe0ac059e62f59de97f81417d40b
|
Provenance
The following attestation bundles were made for makoralle-0.0.2-py3-none-any.whl:
Publisher:
python-publish.yml on Hochfrequenz/makoralle
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
makoralle-0.0.2-py3-none-any.whl -
Subject digest:
2cfbededd7baea8a8a1e2dbce886138f30336bd6833bae2f285fdd7d49679ca4 - Sigstore transparency entry: 2048561982
- Sigstore integration time:
-
Permalink:
Hochfrequenz/makoralle@3e8c3485360c6b6e3eb5b4a5f1ad6b1ce89a0294 -
Branch / Tag:
refs/tags/v0.0.2 - Owner: https://github.com/Hochfrequenz
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
python-publish.yml@3e8c3485360c6b6e3eb5b4a5f1ad6b1ce89a0294 -
Trigger Event:
release
-
Statement type: