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 pylint makoralle
uv run --group linting pylint unittests --rcfile=unittests/.pylintrc
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.3.tar.gz (89.4 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.3-py3-none-any.whl (40.4 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for makoralle-0.0.3.tar.gz
Algorithm Hash digest
SHA256 4e7b32530016eda82b8ee1128fdc972a5e21a739bf1b3fb342d2a450c0fea259
MD5 f119bf61ae19286c75404412bc6014f2
BLAKE2b-256 bc9f0dd8fe9ea0513414d0aecfc06eafa361ead33547f32cb0f99cd11daad410

See more details on using hashes here.

Provenance

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

File metadata

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

File hashes

Hashes for makoralle-0.0.3-py3-none-any.whl
Algorithm Hash digest
SHA256 14a685984f2cece7c796953ce2d1377cc160bff2b8da63f58fb89ded6e254d38
MD5 eded6b46fd98f6a08060875c5e7cd442
BLAKE2b-256 3d96107820a049358831f86dff796c08e68de9c55f461f1e9dcecd2c0b9dd5e6

See more details on using hashes here.

Provenance

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