Welcome to pyudbm

Overview

pyudbm is a Python wrapper around the UPPAAL UDBM library. The project is focused on restoring the historical high-level Python binding while keeping the modern wrapper thin, native-backed, and close to upstream semantics.

Key Features

  • Compatibility-minded API centered on Context, Clock, and Federation

  • Native federation operations provided by the vendored UDBM library

  • Natural constraint syntax for clock bounds and clock differences

  • Cross-platform packaging direction for Linux, macOS, and Windows

Project Status

The repository is still under active development. Core federation construction, valuation handling, and several high-level operations are already available, but the package should still be treated as a work in progress rather than a fully frozen public API.

Quick Start

from pyudbm import Context, IntValuation

c = Context(["x", "y"], name="c")
zone = (c.x < 10) & (c.x - c.y <= 1)

valuation = IntValuation(c)
valuation["x"] = 3
valuation["y"] = 2

assert zone.contains(valuation)

Architecture

The current package is organized around a small public surface:

  • Package root (pyudbm): re-exports the high-level compatibility API

  • Binding layer (pyudbm.binding): Python ergonomics over the native extension

  • Metadata layer (pyudbm.config): package and upstream version metadata

Upstream and Source

Tutorials

Concept Foundations

API Documentation