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.5.tar.gz (91.0 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.5-py3-none-any.whl (43.6 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: makoralle-0.0.5.tar.gz
  • Upload date:
  • Size: 91.0 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.5.tar.gz
Algorithm Hash digest
SHA256 00219f5163f9a8bcf741637ed470cc0dcad66dfd1086f00d322d48d1f8110dfb
MD5 f2afc491edc0aa62f1beefe47e8de6b7
BLAKE2b-256 3d7a2c42aae7bdffd492ef59bc710be030d58c584d9a109400aac1abd43d5b49

See more details on using hashes here.

Provenance

The following attestation bundles were made for makoralle-0.0.5.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.5-py3-none-any.whl.

File metadata

  • Download URL: makoralle-0.0.5-py3-none-any.whl
  • Upload date:
  • Size: 43.6 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.5-py3-none-any.whl
Algorithm Hash digest
SHA256 88f7b02ca2ceaea7664afbf1c52079c4cccde32de0f63b0493dc3783272efcd8
MD5 33e44d07f749659a509086d83a0c3f48
BLAKE2b-256 811151616fcf20f519499f32a272b4ec19150511924916097781726929257f70

See more details on using hashes here.

Provenance

The following attestation bundles were made for makoralle-0.0.5-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