Skip to main content

Add your description here

Project description

regelum

docs tests python uv

regelum

regelum is a framework for modeling Phased Reactive Systems: systems that execute one tick at a time, activate different groups of nodes in different phases, and move between phases with explicit transitions.

Overview

  • Nodes declare typed inputs and outputs.
  • Phases decide which node instances are active together and how control moves between phases.
  • Continuous nodes declare ODE state and are integrated through ODESystem phases.
  • Compilation resolves links, schedules nodes, and catches structural mistakes before runtime.

The best entry point is the Learn overview:

Quick Example

import regelum as rg


class TemperatureSensor(rg.Node):
    class Outputs(rg.NodeOutputs):
        temperature: float = rg.Output(initial=19.0)

    def run(self) -> Outputs:
        return self.Outputs(temperature=21.5)


class HeaterController(rg.Node):
    class Inputs(rg.NodeInputs):
        temperature: float = rg.Input(
            source=TemperatureSensor.Outputs.temperature,
        )

    class Outputs(rg.NodeOutputs):
        heater_on: bool

    def run(self, inputs: Inputs) -> Outputs:
        return self.Outputs(heater_on=inputs.temperature < 22.0)


sensor = TemperatureSensor(name="room_sensor")
controller = HeaterController(name="heater_controller")

system = rg.PhasedReactiveSystem(
    phases=[
        rg.Phase(
            "control",
            nodes=(sensor, controller),
            transitions=(rg.Goto(rg.terminate),),
            is_initial=True,
        ),
    ],
)

system.step()
print(system.read(controller.Outputs.heater_on))

Installation

Recommended: use uv.

uv add regelum

For local development from this repository:

uv sync --all-groups
uv run pytest tests
uv run ty check src tests
uv run mkdocs serve

Examples

uv run regelum-pendulum
uv run regelum-video-player
uv run regelum-instance-connect

Release Process

Create a GitHub Release tagged like v0.2.0. The publish workflow builds the package, derives the version from the tag, and uploads artifacts to PyPI.

After installation, users can verify the packaged version:

import regelum

print(regelum.__version__)

Project details


Download files

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

Source Distribution

regelum-0.2.5.tar.gz (52.9 MB view details)

Uploaded Source

Built Distribution

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

regelum-0.2.5-py3-none-any.whl (122.3 kB view details)

Uploaded Python 3

File details

Details for the file regelum-0.2.5.tar.gz.

File metadata

  • Download URL: regelum-0.2.5.tar.gz
  • Upload date:
  • Size: 52.9 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.8 {"installer":{"name":"uv","version":"0.11.8","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for regelum-0.2.5.tar.gz
Algorithm Hash digest
SHA256 e14c28284b1968a988d8cf281755b2081738be4d2c41921c5e1ac918d3b257c7
MD5 01c4c8bf094310eb7a5d9503edcbfca8
BLAKE2b-256 975a38cdaaa3acaaccac3d079ad44d4c2e7170bd4a816fc4b645e817053c9a16

See more details on using hashes here.

File details

Details for the file regelum-0.2.5-py3-none-any.whl.

File metadata

  • Download URL: regelum-0.2.5-py3-none-any.whl
  • Upload date:
  • Size: 122.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.8 {"installer":{"name":"uv","version":"0.11.8","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for regelum-0.2.5-py3-none-any.whl
Algorithm Hash digest
SHA256 02732f436d0f7e71d1736b93af8213bdc0cf08844d91a91a3decbf5409303bf5
MD5 2bea11a3b3f4466165bba774c3e0c22f
BLAKE2b-256 2f13a3c29a18e01a1af1e3512e20d9668277da936f8cef9b87cd901eb2e72631

See more details on using hashes here.

Supported by

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