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.24, < 0.1 for shared third-party native dependencies.
  • pytyr >= 0.0.31, < 0.1 for Tyr planning, formalism, search, and C++ headers/libraries.
  • pypddl >= 1.0.24, < 1.1 through Tyr/PDDL parsing infrastructure.
  • pypddl-datasets >= 0.0.7, < 0.1 for the PDDL benchmark data used by the C++ test and profiling fixtures (resolved from its cache at CMake configure time).
  • 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.24,<0.1' 'pypddl>=1.0.24,<1.1' 'pytyr>=0.0.31,<0.1' 'pypddl-datasets>=0.0.7,<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_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.25.tar.gz (512.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.25-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (4.5 MB view details)

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

pyrunir-0.0.25-cp313-cp313-macosx_11_0_arm64.whl (3.6 MB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

pyrunir-0.0.25-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (4.5 MB view details)

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

pyrunir-0.0.25-cp312-cp312-macosx_11_0_arm64.whl (3.6 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

pyrunir-0.0.25-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (4.5 MB view details)

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

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

Uploaded CPython 3.11macOS 11.0+ ARM64

pyrunir-0.0.25-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (4.5 MB view details)

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

pyrunir-0.0.25-cp310-cp310-macosx_11_0_arm64.whl (3.6 MB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

pyrunir-0.0.25-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (4.5 MB view details)

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

pyrunir-0.0.25-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.25.tar.gz.

File metadata

  • Download URL: pyrunir-0.0.25.tar.gz
  • Upload date:
  • Size: 512.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.25.tar.gz
Algorithm Hash digest
SHA256 58b638ff3d6da78cb742673f3673a8904815d33845896e59b3903d4920872943
MD5 0c541a42dfccd1c3857429779dd5e858
BLAKE2b-256 f3cf5463a8bc51fc560dc35c7d7a810453425b3c61c0a758f70a0bbf8660aed2

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pyrunir-0.0.25-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 4e547e986591e69439579c3d2ff0c8b228d6b462dcc886217397991e375891fa
MD5 4656e03e7fcd1a1361c27aafbb45f5d0
BLAKE2b-256 30cd992c517fbadd4775dd239dd3c8c9a3b7c890a7974eaaf1ab3f813e792dfe

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pyrunir-0.0.25-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 7f8928d25be6ac08a3f90de03bd8399950a6589d8be5a5eb6f4e6ff33426add0
MD5 5ddd45f65e2795aa29eb1ac7d21f3fc6
BLAKE2b-256 0724369aaed35cbd4bdfec78f77ba1bc6c6c3c5eceaccc2225608b0d0fcb58bf

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pyrunir-0.0.25-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 50d120a5caa95f184c03abf96f91de301addb4e57496d3d894916d398e23a1ed
MD5 4a48ef5c63844cca27c26cebd27ba6ba
BLAKE2b-256 911b5d3af46344b3b952bc42c435c4e2ed163b4ad2372a019af2dfc4e0165de0

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pyrunir-0.0.25-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 96e77dde9abb974e85bc80e15bd35186d7a683d2425c71876321e804a5a840db
MD5 4a7c4c0a02d0896611540221231c61e7
BLAKE2b-256 8ea13545bd65cccbe7b8cf76ebc7490edc1c6e990423efd708b23510060790df

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pyrunir-0.0.25-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 c65cbbbb988d8f7b0d957f93a873a687816c4e98f7a3d5618f578e95cbb9f504
MD5 02cae605cd0706399cec69ae91b89a85
BLAKE2b-256 13c03ff11acf34d1706c93fa8b66eb8c50d5298774484f53a45b976c77905faa

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pyrunir-0.0.25-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 5630407681de9c60e702aa443da4f385458d301325d6dfc3ee2909fc7a86f9c4
MD5 6debb4e5f92be192afd2a52df08862e6
BLAKE2b-256 6f4ec8e717fe2aac3db576691f16035fd8efc0497301dca303456b1f5c978e38

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pyrunir-0.0.25-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 201fcf80c886fcd03bf64e3cdb8a4abeb6f278f9ae1829a28d1a7afcefc48fad
MD5 9925106023b4590747b6cc5840fffc9e
BLAKE2b-256 406324801d87a46e1db07464dbaab87b8bf9919329ec939f403f5219a40f0077

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pyrunir-0.0.25-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 c004c82d01ae15f19452d798774d46fe311cb536834348141aed8260afaf2888
MD5 50faa0581cc514493b0e7b7905d35e25
BLAKE2b-256 e78e5959ec939abd07bbea117c81e311de162a804cf1f0e46b94375eaf4e8df4

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pyrunir-0.0.25-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 5ef4e55d614cf7ed7b03e4892920f55bfcfd9c3224f4b87524eb1fb80fd1e918
MD5 e399df521344305abb94969a1ad4a584
BLAKE2b-256 2f8774ea103cdec97fe80a698ca592554b99bc7ce9274eacb49fb503b4cb1f8d

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pyrunir-0.0.25-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 0f89a7a34a5aa1d0598c98c792dec23498659e903f7aa6d1d0145542177e7265
MD5 6af93a5dbea011087f9ad3d9f6cafd6b
BLAKE2b-256 aae8813798bfe04fe8139634656bf77a7f46a6b1270fa2320146ac4bdf81422e

See more details on using hashes here.

Provenance

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