Skip to main content

makoralle 🪸

Unittests status badge Coverage status badge Linting status badge Black status badge

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:

Dependencies flow one way: makorelemakoralle; 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 uv. To set up a development environment:

uv sync --group dev

Run the unit tests, linting, type checks and coverage (matching what CI runs):

uv run --group tests pytest
uv run --group linting ruff check src/makoralle unittests
uv run --group linting ruff format --check .
uv run --group type_check mypy --strict src/makoralle
uv run --group type_check mypy --strict unittests
cd unittests && uv run --group coverage coverage run -m pytest && cd ..

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

makoralle-0.0.4.tar.gz (89.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

makoralle-0.0.4-py3-none-any.whl (42.1 kB view details)

Uploaded Python 3

File details

Details for the file makoralle-0.0.4.tar.gz.

File metadata

  • Download URL: makoralle-0.0.4.tar.gz
  • Upload date:
  • Size: 89.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for makoralle-0.0.4.tar.gz
Algorithm Hash digest
SHA256 7d5cc787fb33420f84f9f47ff941656f7f91822e030e8fc55b5b1776dbb12a74
MD5 45ec4f854616e2be327970e7302fe23d
BLAKE2b-256 db609a3a4c75504fde7835f1b13aa500a5a072b0ab6a61abfdd5be453f50d668

See more details on using hashes here.

Provenance

The following attestation bundles were made for makoralle-0.0.4.tar.gz:

Publisher: python-publish.yml on Hochfrequenz/makoralle

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file makoralle-0.0.4-py3-none-any.whl.

File metadata

  • Download URL: makoralle-0.0.4-py3-none-any.whl
  • Upload date:
  • Size: 42.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for makoralle-0.0.4-py3-none-any.whl
Algorithm Hash digest
SHA256 c09c596ac2f609dfe76bc238ebe708bc158b872bd02cd800651a781c3d056be2
MD5 aa94b65d3b56af6616dcaa4d951ff073
BLAKE2b-256 c4cef15c4325211fa2d1cf4a38bc472a7c6da1ee811708dedc9cece7181d34ae

See more details on using hashes here.

Provenance

The following attestation bundles were made for makoralle-0.0.4-py3-none-any.whl:

Publisher: python-publish.yml on Hochfrequenz/makoralle

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page