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.21, < 0.1 for shared third-party native dependencies.
  • pytyr >= 0.0.27, < 0.1 for Tyr planning, formalism, search, and C++ headers/libraries.
  • pypddl >= 1.0.19, < 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.21,<0.1' 'pypddl>=1.0.19,<1.1' 'pytyr>=0.0.27,<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.18.tar.gz (500.4 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.18-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.18-cp313-cp313-macosx_11_0_arm64.whl (3.6 MB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

pyrunir-0.0.18-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.18-cp312-cp312-macosx_11_0_arm64.whl (3.6 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

pyrunir-0.0.18-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.18-cp311-cp311-macosx_11_0_arm64.whl (3.6 MB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

pyrunir-0.0.18-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.18-cp310-cp310-macosx_11_0_arm64.whl (3.6 MB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

pyrunir-0.0.18-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.18-cp39-cp39-macosx_11_0_arm64.whl (3.6 MB view details)

Uploaded CPython 3.9macOS 11.0+ ARM64

File details

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

File metadata

  • Download URL: pyrunir-0.0.18.tar.gz
  • Upload date:
  • Size: 500.4 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.18.tar.gz
Algorithm Hash digest
SHA256 cc87774057a46635cd49052c60849e10fabf7a6aeb840acf0de505d61bc316c1
MD5 5346d58f7924e5d95cdff0f8f31c6a74
BLAKE2b-256 b68d1301433d693456fca496c8a8a96fc311dc534b53a061f8a216edd792b17f

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pyrunir-0.0.18-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 07566b3cec12bafe9c5c32e8cb8666578730a6eae0f5771e7f9b0e64d7bf118e
MD5 9dc52897257a3dcf02ce50fd96a2ef15
BLAKE2b-256 1ba5687a0b32f7e65dfc70fc256949438e713ad88676d39de858a5540c962dbe

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pyrunir-0.0.18-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 d933d9747930ebaa49f7c3b18db389dbbdb0757cfb1ccfc0b1faf801e7b0e4a4
MD5 b29348e3a2a472db5e5d264cc50e0f15
BLAKE2b-256 109c9277a91617a05dc69e73efd75d32a7423e367a90cb574012144dd527cfa0

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pyrunir-0.0.18-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 5bc993859753337a6c445cf79bffdaf5c0792f3729b5ea9add3f9cb0c51144b4
MD5 3dc526024d66f81d029c5aa5dd50e3e2
BLAKE2b-256 9a57c8f15b5de17148d9c6be144f22ced7af1d4b7404ab11d0f583c660f847fe

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pyrunir-0.0.18-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 4ccf0fc71e497618cb34119d43b429931862cba61732ed3137f08fadb7527fc2
MD5 627571ac807d396ed0331d1f58328f9f
BLAKE2b-256 d7dce2c35737f1769b3cc805f7015ac3453f5efa81be5402296aaf3876c1a864

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pyrunir-0.0.18-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 71f94c4798e131b64ed80183c51392814309099d93013f685eb40b550ad8491e
MD5 74cb7d4eed23311cc7f03fc0122123f2
BLAKE2b-256 f37599d9ee4431a7c848aee263c313ce77ba83b88bd545d4e92275f51a84bf06

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pyrunir-0.0.18-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 f2abf946b192728dd3fdb57913a5ee0e418effe190728654fb4cabb0f267591d
MD5 c587f52639a2319b95ec30c0f88c4846
BLAKE2b-256 28a4ce67f06b29a748a4be079f4d443e4a4cdf1f08194775f987aae149445222

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pyrunir-0.0.18-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 324312e80e1b9b158830f68bba7e093b8b39d4c3240f1fc958fac52922a210ab
MD5 70f905bc09ea4e8fcf12df03db8334c1
BLAKE2b-256 91cf62920cfcf38daa8eca99ea10e94b6a26254483076a39cd9dd7bab84a7541

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pyrunir-0.0.18-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 d026beaf64067fe105eedf3a1260bed72629b698f8c75b3c1cfc5e38c2c2732f
MD5 2f1b87976469b1538daa5ff9b4c6ff91
BLAKE2b-256 22d936b1a1ab2fd4c9284c5a53215a9bdacd3b2ed37a0a21a89383fe664a68df

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pyrunir-0.0.18-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 e77134555c66a55c245b58944b2a25763e3b87ce81be8709d7bd6b7fc1f0ea07
MD5 84531b445b7c3d331ec35d54fae92ce6
BLAKE2b-256 086e7577d7b8898971ab35da0a6c2cc2d4ecf6e09ad91acf6e46b0bbdd48cb0c

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pyrunir-0.0.18-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 2534bd73f8e61782737795a991b2b4b7668a03a90b0cf87f9f56062ca2c6a490
MD5 f2e994843ecdae706306333822f807ec
BLAKE2b-256 20e0e31d759ff0a0ab72c88294acf9e084fe133525737ae795fb91b59b3558f8

See more details on using hashes here.

Provenance

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