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.25, < 0.1 for Tyr planning, formalism, search, and C++ headers/libraries.
  • pypddl >= 1.0.12, < 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.12,<1.1' 'pytyr>=0.0.25,<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.11.tar.gz (514.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.11-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (4.1 MB view details)

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

pyrunir-0.0.11-cp313-cp313-macosx_11_0_arm64.whl (3.3 MB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

pyrunir-0.0.11-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (4.1 MB view details)

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

pyrunir-0.0.11-cp312-cp312-macosx_11_0_arm64.whl (3.3 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

pyrunir-0.0.11-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (4.1 MB view details)

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

pyrunir-0.0.11-cp311-cp311-macosx_11_0_arm64.whl (3.3 MB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

pyrunir-0.0.11-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (4.1 MB view details)

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

pyrunir-0.0.11-cp310-cp310-macosx_11_0_arm64.whl (3.3 MB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

pyrunir-0.0.11-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (4.1 MB view details)

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

pyrunir-0.0.11-cp39-cp39-macosx_11_0_arm64.whl (3.3 MB view details)

Uploaded CPython 3.9macOS 11.0+ ARM64

File details

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

File metadata

  • Download URL: pyrunir-0.0.11.tar.gz
  • Upload date:
  • Size: 514.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.11.tar.gz
Algorithm Hash digest
SHA256 341c4b80118d6489273ac91f01a8bc58dd7a54dc463edcf64dd0f6fc959b328f
MD5 4449a82bd1b4547c62938fab3eaa233b
BLAKE2b-256 2edb3264d8b29fdb92ce15375bae1ca3f5274abd0de2b70c5ccad97c04545c71

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyrunir-0.0.11.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.11-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pyrunir-0.0.11-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 8235b21d461446490e0c48deae840a62737f772ca7f2cffce206055e84edecb7
MD5 77142826aa45da98945f02ac431dcddf
BLAKE2b-256 d1491e2f717220d5cc869e9770740e8e840d5a0e9d2a03a3632e1cd940d53224

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyrunir-0.0.11-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.11-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pyrunir-0.0.11-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 5d779fd9e74de0ac31c26a1bc76146bd056ed04c565133cecd88ad6fb22fbed6
MD5 73616dcff845ba619c7d917d3c726162
BLAKE2b-256 546a0457152a75999dbc34b41a1376453c2129a01e8454b5142d2b56474cad8a

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyrunir-0.0.11-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.11-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pyrunir-0.0.11-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 d7ae4591e215e48fb108c11776b5b0e283a1916e04f89fa0fbab8e3c08697a24
MD5 76bca8fb2175f6731b01b5a2914aa4c5
BLAKE2b-256 8eb01535f8c6033c3fa0baec3975c12d620aa3ba80927a0d12e05159a6b09aa7

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyrunir-0.0.11-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.11-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pyrunir-0.0.11-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 3d28c533f6d6f6204ba28db88922400ed34f650fe7da4e299610f7e77ba6f5b4
MD5 ed990e7b43a7fbba1752ce4e086758a4
BLAKE2b-256 64f580eab9bf96c20e0cacbc84baf62f9f6219554663696e77d7fb6b75bfda6e

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyrunir-0.0.11-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.11-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pyrunir-0.0.11-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 72d290a63d7156d9cccbd823f7437d1b8190776374787708207b93106e0214b9
MD5 ac55a24b850e7d1acc03ac48fcdc0895
BLAKE2b-256 b55e6327a753823ac9013affffc5ca1677d05bd7138e64f646decd44c7d32fbf

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyrunir-0.0.11-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.11-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pyrunir-0.0.11-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 552510b0173f150b781aca8eede30439950ab7e2187d952cc19f8a4712a5a156
MD5 97b393020e3fa5fc572517d00c24ebeb
BLAKE2b-256 f1f60ab412051f3a4f64a740ecd1b166590780b55a82cb1cb93f62ad88bbbf45

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyrunir-0.0.11-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.11-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pyrunir-0.0.11-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 2adc19cbc0442ab233468b3a5be07e7e4af266893badebcc137fa87095318825
MD5 3a71b581c565316aa702ee15dbd110ef
BLAKE2b-256 6979f7c21c7a80d8f010debde1555b3b02ba8ddcf7dd33650d6fa96894773a91

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyrunir-0.0.11-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.11-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pyrunir-0.0.11-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 422aa557a216243c9e3f18077b25c58b3ea1bf3b21b0da4e75ca5797e30d7640
MD5 5a3ed516a1bc866942b097f19b42155b
BLAKE2b-256 9b900446a10f04615ec7507147e14f2d568a3a8de1634602069073408a91b2f2

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyrunir-0.0.11-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.11-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pyrunir-0.0.11-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 d806fbc3c82a879c9d01fdb25b860c923233f94241745fe80492a9da28b18f38
MD5 5ed4177182e0dd0468fcf8ef066d3bf8
BLAKE2b-256 1487339e335adffc47a4dd017b4a8feee5a54b1891cdbacade5a9afa18348e02

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyrunir-0.0.11-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.11-cp39-cp39-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pyrunir-0.0.11-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 f979123c2bd17bc3934a91209f16088e109126f0afc19a42ac246722861a542a
MD5 50c9e951f97104b69418c5e3b3454a4d
BLAKE2b-256 bc5e2ba153e0a6ae6f3ad04cb21a329fe8a279fa17a2dd9e0ad9f01647ea3a39

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyrunir-0.0.11-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