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.25, < 0.1 for shared third-party native dependencies.
  • pytyr >= 0.0.32, < 0.1 for Tyr planning, formalism, search, and C++ headers/libraries.
  • pypddl >= 1.0.25, < 1.1 through Tyr/PDDL parsing infrastructure.
  • pypddl-datasets >= 0.0.9, < 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.25,<0.1' 'pypddl>=1.0.25,<1.1' 'pytyr>=0.0.32,<0.1' 'pypddl-datasets>=0.0.9,<0.1'

cmake -S . -B build

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 Instantiate templates in in-tree translation units at higher compile-time cost.
RUNIR_USE_LLD ON Use LLVM lld with Clang when available.
RUNIR_ENABLE_LTO ON Enable link-time optimization for Release builds.

Single-config CMake builds default to Release. On GCC and Clang, Debug builds use -Og with debug symbols, RelWithDebInfo keeps frame pointers and disables LTO, and Release LTO uses GCC LTO or Clang ThinLTO. Editable installs and wheels disable RUNIR_USE_LLD and RUNIR_ENABLE_LTO by default for build reliability.

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.26.tar.gz (546.9 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.26-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (4.7 MB view details)

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

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

Uploaded CPython 3.13macOS 11.0+ ARM64

pyrunir-0.0.26-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (4.7 MB view details)

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

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

Uploaded CPython 3.12macOS 11.0+ ARM64

pyrunir-0.0.26-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (4.7 MB view details)

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

pyrunir-0.0.26-cp311-cp311-macosx_11_0_arm64.whl (3.4 MB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

pyrunir-0.0.26-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (4.7 MB view details)

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

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

Uploaded CPython 3.10macOS 11.0+ ARM64

pyrunir-0.0.26-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (4.7 MB view details)

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

pyrunir-0.0.26-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.26.tar.gz.

File metadata

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

File hashes

Hashes for pyrunir-0.0.26.tar.gz
Algorithm Hash digest
SHA256 b0a282097154c4295039382776439230a18beaa505d51144e721f9bab230adf2
MD5 1688566da8f03d95edf0efc635d73245
BLAKE2b-256 76cf0ff13b8efbbd471d589ea807872ff967f4f1a3f7182980957566d804032d

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pyrunir-0.0.26-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 0090e3aad8dc0326f227dff1ac2fb25d7a401cb275d2efc6139956e168dde902
MD5 59b56d892f9c9b68eee4dec20b875728
BLAKE2b-256 631ccb29a5e9c8a879d9717a2271524ff6736df721e1dd928d46ef8f83330779

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pyrunir-0.0.26-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 9591a393a04f075f0b25061cac0c37e1147171b4a5f60a969a15f8efe26934e6
MD5 4d32f23a6238ea13a6a32dd2d6ba3a37
BLAKE2b-256 144c93baf44181358a7e8330b29dfa798556c25ac5bd27d43be83109e75a1a12

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pyrunir-0.0.26-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 75563bd7afab2e012b6c16baf8e85454f33c5cc1617899a132a2cfe2542246db
MD5 0f6d8dfe1c02a35ea68db801b3861ae9
BLAKE2b-256 76e0a3a8cd7035335efc7b0c6ef82c9225c4b1198b6b4c5fb2de38b0769d30d1

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pyrunir-0.0.26-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 1352ff61ec95ab41684c9914ccde0c14b2d1bdee7b4e3cc48416f64d56587f8c
MD5 21b8b0b6f791e9d7fb67952d6b2aae66
BLAKE2b-256 afb9d08667c01ca6f9495a6837bd8b5e365d62a3deb22e5b1dcdbb91c5cc3a09

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pyrunir-0.0.26-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 75d133077559d3125125c854bcac72db75217c845543b3ec8b8a88be43cbe671
MD5 ed70523f78b300dce2d9493034cab282
BLAKE2b-256 7953c372378594889bca9b67ed63f112722ae918701e0cdf3c93aceaf9c90085

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pyrunir-0.0.26-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 6bfe1a1c6dbd90a59ba6d37b33616bd6dc87815ff49189b05d29c2f8f0bc8cdf
MD5 10ff3c5e8cbbc68d50ef38f0b54e762d
BLAKE2b-256 7bd40530c71ec6500b33e1771076f1911e78a6b8123df2b40bf750623830b9de

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pyrunir-0.0.26-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 4d5f2f5decdea2e8cf09faf8f14d312af77f7274c20f70e4915b3ebdc7e8ee5c
MD5 418e547e485e60dd6b03e253dfca721b
BLAKE2b-256 3caf2cbdc9e322e4f3f3472d8f3a41bd037fc41665f75c547cad4e241bf1886a

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pyrunir-0.0.26-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 da4c07b33ac50b9f5219df6d685168661bfcd5db2a27e5af233363605385449c
MD5 baa4468e6f79f8923ca4c7c43112d81a
BLAKE2b-256 2d27380d7ba1a7e38ae17c6f362fe4a637ce3f222d2c9ef2812e83a901d1ebdd

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pyrunir-0.0.26-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 11b87fe105c5cb522e9d3d8e56dc0891d473037bd025ada59e54d5625ef307bf
MD5 404dd13d01fe90f5611117a9a784641a
BLAKE2b-256 af26f462dae0dc3394e75b4627850344187db5b353a2b7d6261c12d7b969e12c

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pyrunir-0.0.26-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 ce4a7850740567aaca06f3cdfc734987f4f69223df5cc8a280d2ece686985904
MD5 76b26add6d0247b46d7707dab1eacf2b
BLAKE2b-256 90d4faa532097ee5eb248b93fcbfd2ada16261b9173d57f9fa3580010c175a09

See more details on using hashes here.

Provenance

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