Skip to main content

Runir: Representations for Generalized Planning in C++ and Python

Runir is designed to address several challenges in the integration of learning and planning based systems:

  1. Dataset construction from planning tasks and classes of tasks over a common planning domain.

  2. State Model Representations that expose a task's dynamics in a representation suitable for relational learning.

  3. Symbolic feature languages with formal syntax, semantics, parsing, generation, and evaluation.

  4. Generalized policy evaluation on planning examples with explicit access to policy failures and counterexamples.

  5. Equivalence abstractions for comparing states and tasks through graph, object-graph, and equivalence-graph representations.

Runir is the learning and representation layer for the planning-and-learning ecosystem. Tyr provides the planning backend: PDDL/formalism objects, task repositories, state repositories, successor generation, search algorithms, and Python bindings. Runir builds on top of that backend to make planning tasks inspectable and learnable, not only solvable.

Components

  • runir::graphs: typed graph data structures, static/dynamic graphs, BGL adapters, shortest paths, strongly connected components, topological sort, color refinement, Weisfeiler-Lehman certificates, and nauty-backed graph isomorphism certificates.
  • runir::datasets: task classes, per-task search contexts, state graphs, annotated state graphs, object graphs, and equivalence graphs built from policies such as identity or graph-isomorphism reduction.
  • runir::kr::dl: description-logic constructors, grammars, CNF grammars, denotations, evaluation, parsing, formatting, and grammar factories.
  • runir::kr::ps: rule-based generalized policies over typed features, conditions, effects, policy parsing, policy factories, and policy execution on annotated state graphs.
  • pyrunir: Python bindings for the same components with stubs.

The native CMake package exports runir::core as the aggregate target and component targets such as runir::graphs, runir::datasets, and runir::kr. The Python package is pyrunir.

Dependencies

  • pyyggdrasil >= 0.0.18, < 0.1 for shared third-party native dependencies.
  • pytyr >= 0.0.26, < 0.1 for Tyr planning, formalism, search, and C++ headers/libraries.
  • pypddl >= 1.0.13, < 1.1 through Tyr/PDDL parsing infrastructure.
  • scikit-build-core for Python wheel builds.

The shared workspace layout, layered install order, and the common build-from-source and CMake-integration patterns are documented in the Planning and Learning build instructions; the sections below cover runir/pyrunir-specific details.

Build C++

Install Runir's native dependency providers into the active Python environment, then configure CMake with their native prefixes:

python -m pip install 'pyyggdrasil>=0.0.18,<0.1' 'pypddl>=1.0.13,<1.1' 'pytyr>=0.0.26,<0.1'

cmake -S . -B build -DCMAKE_BUILD_TYPE=Debug

cmake --build build -j4

CMake discovers the installed provider packages automatically through cmake/bootstrap_pyyggdrasil.cmake (which locates pyyggdrasil and adds its native prefix to CMAKE_PREFIX_PATH; find_package(yggdrasil) then resolves the rest of the chain) and links against the yggdrasil::yggdrasil and tyr::core targets. To point at different prefixes explicitly:

cmake -S . -B build \
  -DCMAKE_PREFIX_PATH="$(python -m pyyggdrasil --prefix);$(python -m pypddl --prefix);$(python -m pytyr --prefix)"

CMake options:

Option Default Description
RUNIR_BUILD_TESTS OFF Build Runir tests.
RUNIR_BUILD_EXECUTABLES OFF Build Runir executables.
RUNIR_BUILD_PYRUNIR OFF Build pyrunir Python bindings.
RUNIR_ENABLE_FMT_FORMATTERS ON Enable the public fmt::formatter specializations of Runir, Tyr, Loki, and yggdrasil (RUNIR_/TYR_/LOKI_/YGG_ENABLE_FMT_FORMATTERS macros, all default-on in the headers).
RUNIR_HEADER_INSTANTIATION OFF Enable template definitions in public headers at higher compile-time cost.

Run tests from a build configured with -DRUNIR_BUILD_TESTS=ON:

ctest --test-dir build --output-on-failure

Install Runir from a configured build directory with:

cmake --install build --prefix=<path/to/installation-directory>

Build Python

python -m pip install .[test]
pytest python/tests

CMake Integration

This section covers pyrunir-specific paths and targets; the general pattern for consuming the native prefixes from CMake is in the common CMake integration instructions.

The Python package pyrunir installs Runir's native headers, shared libraries, and CMake package config under pyrunir.native_prefix(). Use pyrunir.cmake_prefix() and pyrunir.cmake_dir() (or python -m pyrunir --prefix / --cmake-dir from the shell) to locate them. Downstream CMake projects should include the native prefixes of pyrunir and its native package dependencies in CMAKE_PREFIX_PATH:

cmake -S . -B build \
  -DCMAKE_PREFIX_PATH="$(python -m pyyggdrasil --prefix);$(python -m pypddl --prefix);$(python -m pytyr --prefix);$(python -m pyrunir --prefix)"

Runir exports the runir::core aggregate target and component targets such as runir::graphs, runir::datasets, and runir::kr.

Intended Workflow

Runir is designed for experiments where a learning system needs structured access to planning behavior:

  1. Parse and instantiate tasks with Tyr.
  2. Build state graphs or equivalence graphs with Runir datasets.
  3. Define symbolic features in a KR language such as description logics.
  4. Build or parse a generalized policy over those features.
  5. Execute the policy on examples and inspect failures or counterexamples.

This keeps low-level planning mechanics in Tyr while giving learning code a high-level, typed interface for representations, abstractions, and policy evaluation.

Download files

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

Source Distribution

pyrunir-0.0.15.tar.gz (524.2 kB view details)

Uploaded Source

Built Distributions

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

pyrunir-0.0.15-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (4.2 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

pyrunir-0.0.15-cp313-cp313-macosx_11_0_arm64.whl (3.4 MB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

pyrunir-0.0.15-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (4.2 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

pyrunir-0.0.15-cp312-cp312-macosx_11_0_arm64.whl (3.4 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

pyrunir-0.0.15-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (4.2 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

pyrunir-0.0.15-cp311-cp311-macosx_11_0_arm64.whl (3.6 MB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

pyrunir-0.0.15-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (4.2 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

pyrunir-0.0.15-cp310-cp310-macosx_11_0_arm64.whl (3.4 MB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

pyrunir-0.0.15-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (4.2 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

pyrunir-0.0.15-cp39-cp39-macosx_11_0_arm64.whl (3.4 MB view details)

Uploaded CPython 3.9macOS 11.0+ ARM64

File details

Details for the file pyrunir-0.0.15.tar.gz.

File metadata

  • Download URL: pyrunir-0.0.15.tar.gz
  • Upload date:
  • Size: 524.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for pyrunir-0.0.15.tar.gz
Algorithm Hash digest
SHA256 382e7279e3f83dd6eec04bae508b0af64287adbfea23b56d06ff3c546830cf5f
MD5 ba53e371c4cfb9cefb93013860a4ad44
BLAKE2b-256 0e040a7b657a59f8eaf993a882f9bc6bd7eb19fe017a21ec1cd408757fd5cec0

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyrunir-0.0.15.tar.gz:

Publisher: release.yml on planning-and-learning/runir

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

File details

Details for the file pyrunir-0.0.15-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pyrunir-0.0.15-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 9f7bfad9b6c661acbd3aaeb2d8eba69e423054cdb16721144390f1b30eef9e75
MD5 971fd076d0a7244397df4c4424a01b61
BLAKE2b-256 4d079bb0ff52f9a88b5f4595af54f29311125386210e2c42c07416161ae6aa80

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyrunir-0.0.15-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:

Publisher: release.yml on planning-and-learning/runir

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

File details

Details for the file pyrunir-0.0.15-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pyrunir-0.0.15-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 49f71ec4aeb7f8e08612cd66b9e142b22a987685298d4e3345b9d09c10205f52
MD5 e6cf81f6f54dcf8d393531ae4bc7c993
BLAKE2b-256 5e0226026d8a1518661c58b2e15d86ac288a16e2a7bcb97a10549746560365e7

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyrunir-0.0.15-cp313-cp313-macosx_11_0_arm64.whl:

Publisher: release.yml on planning-and-learning/runir

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

File details

Details for the file pyrunir-0.0.15-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pyrunir-0.0.15-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 b8c4bf2d60a22723cf8aef5bb72bf67b784ae44a9b29a6e199eb5d5187e53a7c
MD5 bd76cce5ddfcd2594937c55b16adc6d5
BLAKE2b-256 eed0f9c1c92b714c759be83da3dc72fdbfe808aeff9910ff8ee2ad0bca29a5dd

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyrunir-0.0.15-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:

Publisher: release.yml on planning-and-learning/runir

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

File details

Details for the file pyrunir-0.0.15-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pyrunir-0.0.15-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 dd90e893ad98d5841170297d65319296a9818b3e992cbe14c9d621f7ab37aee9
MD5 5bfbe16c46c2d3ecf99ab43f8b7159b7
BLAKE2b-256 0bcb7e70251a322cdec1b1652c4ca15f20444c992cb0794172b7df43814c28f9

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyrunir-0.0.15-cp312-cp312-macosx_11_0_arm64.whl:

Publisher: release.yml on planning-and-learning/runir

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

File details

Details for the file pyrunir-0.0.15-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pyrunir-0.0.15-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 5bba7f067b674426c975e248be82c10490e4e70e62edacf3170f48408cf0492d
MD5 07341ccbf9edf21471ffdcc61126fb1b
BLAKE2b-256 97fe4767e00407e8248f454d33676ce669c8c59a8cf6caecdc56029bfe6e3f7c

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyrunir-0.0.15-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:

Publisher: release.yml on planning-and-learning/runir

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

File details

Details for the file pyrunir-0.0.15-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pyrunir-0.0.15-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 5642d3169e220b3beb095360e1c7123bd9dc4e6c3434dc7f262cf81024a43f31
MD5 423a03ddb758f31f585a8d80ba454037
BLAKE2b-256 10d7ddecf68b75e82681b7e6f7eeecfaf0af99bf615da9a2426e084a386f81ac

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyrunir-0.0.15-cp311-cp311-macosx_11_0_arm64.whl:

Publisher: release.yml on planning-and-learning/runir

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

File details

Details for the file pyrunir-0.0.15-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pyrunir-0.0.15-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 413a72b4c3c5aa1707a94353cb0e1a62947fac328ba69b9e4cf08f26001f034d
MD5 590250046c963deea53ac4e8c0d89b22
BLAKE2b-256 81333a3db318ea4f65a8c304392217eddce2d5f256582f94201b437e252231d3

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyrunir-0.0.15-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:

Publisher: release.yml on planning-and-learning/runir

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

File details

Details for the file pyrunir-0.0.15-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pyrunir-0.0.15-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 0f9c874f5c3ed04e4e41c0961c9b2ff7dcd686c949197848904e85aa910b2ce4
MD5 7840ad4cd829050975b5f46ff4b65f2f
BLAKE2b-256 d46f828a485817bc9ddae43b00fe900fc485aef41d1ee69c5c8892ce3e7077ba

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyrunir-0.0.15-cp310-cp310-macosx_11_0_arm64.whl:

Publisher: release.yml on planning-and-learning/runir

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

File details

Details for the file pyrunir-0.0.15-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pyrunir-0.0.15-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 7c2bb098941431ee49b8ce3863239a25863f992960cfd9baae8f79461f983e8b
MD5 1cfd7283c2af97243b92e19890a34642
BLAKE2b-256 86749822451f0874d12795897718d615f01a90b34009af68729f55bdec74c8eb

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyrunir-0.0.15-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:

Publisher: release.yml on planning-and-learning/runir

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

File details

Details for the file pyrunir-0.0.15-cp39-cp39-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pyrunir-0.0.15-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 a269d9874d7cceb41c057429c50ff13d70dcf4178b05ebed583cd5709d7d0a06
MD5 63cd41792a6436eab1e466e4505660d6
BLAKE2b-256 aa80bf7ce28395eb6059f85dee564f2233634affcff0295fc518bda4a12293db

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyrunir-0.0.15-cp39-cp39-macosx_11_0_arm64.whl:

Publisher: release.yml on planning-and-learning/runir

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 Pingdom Monitoring Sentry Error logging StatusPage Status page