Tyr datalog/planning library
Project description
Tyr: Generalized Planning in C++20 and Python
Tyr is designed to address several challenges in modern planning systems:
-
Unified grounded and lifted planning within a type-safe API.
-
Rapid prototyping through Python bindings with type hints, backed by a high-performance C++ core.
-
Support for expressive numeric planning formalisms across both grounded and lifted reasoning paradigms (see Supported PDDL Features).
-
Integration of learning and reasoning by supporting collections of planning tasks over a shared planning domain.
Technical Overview
-
PDDL frontend: Tyr uses Loki to parse, normalize, and translate PDDL input. The parser is implemented with Boost and provides informative error messages for syntactically invalid input. The normalization pipeline largely follows the approach described in Section 4 of Concise finite-domain representations for PDDL planning tasks.
-
Datalog engine: Tyr implements a parallel semi-naive Datalog engine for lifted successor generation, axiom evaluation, relaxed planning graph heuristics, and task grounding. Its execution model is synchronous and supports both rule-level and grounding-level parallelism.
-
Ground planning: For grounded tasks, Tyr uses data structures inspired by The Fast Downward Planning System to efficiently identify applicable actions in a given state. Grounding often yields substantial performance improvements, although it is not always feasible for large tasks.
-
State representation: Tyr statically analyzes domain and problem files and partitions predicates, functions, and related structures into strongly typed categories such as static, fluent, and derived atoms. This design prevents accidental mixing of conceptually different entities. To represent sequences compactly, Tyr uses tree databases of perfectly balanced binary trees, allowing common subsequences to be shared through shared subtrees. As a special case, Tyr synthesizes finite-domain variables for fluent atoms in grounded planning, largely following the method described in Section 5 of Concise finite-domain representations for PDDL planning tasks, enabling more compact storage when grounding is feasible.
-
Memory model: Tyr stores generated data in hierarchically structured, geometrically growing buffers. For variable-sized objects, it uses Cista for serialization and zero-copy deserialization. This design allows derived buffers to inherit data from parent buffers without duplication. For example, multiple tasks can share a domain, and multiple workers can share task data.
Getting Started
The library consists of a formalism and a planning component. The formalism component is responsible for representing PDDL entities. The planning component provides functionality for implementing search algorithms, as well as off-the-shelf implementations of eager A*, lazy GBFS, and heuristics such as blind, max, add, and FF. Below is a minimal overview of the Python and C++ APIs for implementing custom search algorithms.
Python Interface
Pytyr is available at PyPI and can be installed with pip install pytyr.
Detailed examples are available in the python/examples directory:
structures.py– Parse and traverse all planning formalism structures.builder.py– Create new planning formalism structures.invariants.py– Synthesize invariants, access candidate variable bindings, and match atoms through unification.astar_eager.py– Use and customize off-the-shelf search algorithms.gbfs_lazy.py– Implement a custom search algorithm from scratch.
The Python interface for implementing search algorithms is:
# Recommended namespace aliases
from pytyr.planning import ExecutionContext
import pytyr.formalism.planning as tfp
import pytyr.planning.lifted as tpl # pytyr.planning.ground also exists
# Parse and translate a task over a domain.
parser = tfp.Parser("domain.pddl")
# Instantiate a lifted task.
task = tpl.Task(parser.parse_task("problem.pddl"))
# Instantiate a single-threaded execution environment.
execution_context = ExecutionContext(1)
# Instantiate the planning objects. Factories assign unique context indices so
# state views from different state repositories hash and compare correctly.
axiom_evaluator_factory = tpl.AxiomEvaluatorFactory()
state_repository_factory = tpl.StateRepositoryFactory()
successor_generator_factory = tpl.SuccessorGeneratorFactory()
axiom_evaluator = axiom_evaluator_factory.create(task, execution_context)
state_repository = state_repository_factory.create(task, axiom_evaluator)
successor_generator = successor_generator_factory.create(task, execution_context, state_repository)
# Get the initial node (state + metric value)
initial_node = successor_generator.get_initial_node()
# Get the labeled successor nodes (sequence of ground action + node)
labeled_successor_nodes = successor_generator.get_labeled_successor_nodes(initial_node)
C++ Interface
The C++ interface for implementing search algorithms is:
#include <tyr/tyr.hpp>
// Recommended namespace aliases.
namespace tfp = tyr::formalism::planning;
namespace tp = tyr::planning;
// Parse and translate a task over a domain.
auto parser = tfp::Parser("domain.pddl");
// Instantiate a lifted task.
auto task = tp::Task<tp::LiftedTag>::create(parser.parse_task("problem.pddl"));
// Instantiate a single-threaded execution environment
auto execution_context = ygg::ExecutionContext::create(1);
// Instantiate the planning objects. Factories assign unique context indices so
// state views from different state repositories hash and compare correctly.
auto axiom_evaluator_factory = tp::AxiomEvaluatorFactory<tp::LiftedTag>();
auto state_repository_factory = tp::StateRepositoryFactory<tp::LiftedTag>();
auto successor_generator_factory = tp::SuccessorGeneratorFactory<tp::LiftedTag>();
auto axiom_evaluator = axiom_evaluator_factory.create(task, execution_context);
auto state_repository = state_repository_factory.create(task, axiom_evaluator);
auto successor_generator = successor_generator_factory.create(task, execution_context, state_repository);
// Get the initial node (state + metric value).
auto initial_node = successor_generator->get_initial_node();
// Get the labeled successor nodes (sequence of ground action + node).
auto labeled_successor_nodes = successor_generator->get_labeled_successor_nodes(initial_node);
Dependencies
Tyr consumes native dependencies from Python packages:
pyyggdrasil >= 0.0.18, < 0.1for shared third-party native dependencies.pypddl >= 1.0.21, < 1.1for Loki's PDDL parser library, headers, and CMake package.
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 tyr/pytyr-specific details.
Build C++
Install Tyr'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.21,<1.1'
cmake -S . -B build \
-DPython_EXECUTABLE="$(python -c 'import sys; print(sys.executable)')" \
-DPython3_EXECUTABLE="$(python -c 'import sys; print(sys.executable)')"
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
loki::parsers targets. To point at different prefixes explicitly:
cmake -S . -B build \
-DCMAKE_PREFIX_PATH="$(python -m pyyggdrasil --prefix);$(python -m pypddl --prefix)"
CMake options:
| Option | Default | Description |
|---|---|---|
TYR_BUILD_TESTS |
OFF |
Build Tyr tests. |
TYR_BUILD_EXECUTABLES |
OFF |
Build Tyr executables. |
TYR_BUILD_PROFILING |
OFF |
Build Tyr profiling targets. |
TYR_BUILD_PYTYR |
OFF |
Build pytyr Python bindings. |
TYR_HEADER_INSTANTIATION |
OFF |
Enable stronger inlining at higher compile-time cost. |
TYR_ENABLE_INNER_PARALLELISM |
OFF |
Enable inner rule parallelism. |
TYR_USE_LLD |
ON |
Use LLVM lld when available. |
TYR_ENABLE_LTO |
ON |
Enable link-time optimization for optimized builds. |
TYR_STATE_STORAGE_POLICY |
Tree |
State storage backend; accepted values are Tree and Hashset. |
Install Tyr from a configured build directory with:
cmake --install build --prefix=<path/to/installation-directory>
More detailed Tyr-specific build instructions are available in
docs/BUILD.md.
Build Python
python -m pip install .[test]
pytest python/tests
CMake Integration
This section covers pytyr-specific paths and targets; the general pattern for
consuming the native prefixes from CMake is in the
common CMake integration instructions.
The Python package pytyr installs Tyr's native headers, shared library, and
CMake package config under pytyr.native_prefix(). Use pytyr.cmake_prefix()
and pytyr.cmake_dir() (or python -m pytyr --prefix / --cmake-dir from the
shell) to locate them. Downstream CMake projects should include the native
prefixes of pytyr 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)"
Tyr exports the tyr::core aggregate target.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distributions
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file pytyr-0.0.28.tar.gz.
File metadata
- Download URL: pytyr-0.0.28.tar.gz
- Upload date:
- Size: 528.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
acfab928f98c325404c98fd6fb5a426520e9226945cf2a3e25ccfa58d7478a22
|
|
| MD5 |
61b350d2ba6120d262ab612b91101fa2
|
|
| BLAKE2b-256 |
e4cf325afb3da2aa9fa8c960bf919b56d368fa5b332793d4c9cb2e09d7f95585
|
Provenance
The following attestation bundles were made for pytyr-0.0.28.tar.gz:
Publisher:
release.yml on planning-and-learning/tyr
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
pytyr-0.0.28.tar.gz -
Subject digest:
acfab928f98c325404c98fd6fb5a426520e9226945cf2a3e25ccfa58d7478a22 - Sigstore transparency entry: 2146329659
- Sigstore integration time:
-
Permalink:
planning-and-learning/tyr@3559c622576c954046c3b3e42fe7496d047440fb -
Branch / Tag:
refs/tags/v0.0.28 - Owner: https://github.com/planning-and-learning
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@3559c622576c954046c3b3e42fe7496d047440fb -
Trigger Event:
push
-
Statement type:
File details
Details for the file pytyr-0.0.28-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.
File metadata
- Download URL: pytyr-0.0.28-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
- Upload date:
- Size: 4.8 MB
- Tags: CPython 3.13, manylinux: glibc 2.27+ x86-64, manylinux: glibc 2.28+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
cb0c252a3b22dde75ba34cc33379f56e88e6e53fbe12e101518d84ab8d0bd948
|
|
| MD5 |
a136597cd74679545f10a4e3acea26ce
|
|
| BLAKE2b-256 |
9bfca5ade5b5f8f8beb590920bc7ad19f69c262e7b77b11547007d84e1566d88
|
Provenance
The following attestation bundles were made for pytyr-0.0.28-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:
Publisher:
release.yml on planning-and-learning/tyr
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
pytyr-0.0.28-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl -
Subject digest:
cb0c252a3b22dde75ba34cc33379f56e88e6e53fbe12e101518d84ab8d0bd948 - Sigstore transparency entry: 2146330187
- Sigstore integration time:
-
Permalink:
planning-and-learning/tyr@3559c622576c954046c3b3e42fe7496d047440fb -
Branch / Tag:
refs/tags/v0.0.28 - Owner: https://github.com/planning-and-learning
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@3559c622576c954046c3b3e42fe7496d047440fb -
Trigger Event:
push
-
Statement type:
File details
Details for the file pytyr-0.0.28-cp313-cp313-macosx_11_0_arm64.whl.
File metadata
- Download URL: pytyr-0.0.28-cp313-cp313-macosx_11_0_arm64.whl
- Upload date:
- Size: 3.4 MB
- Tags: CPython 3.13, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7942eb1c1d2b8e097e0af2897f81daaa2249ce82ff768bc64d28d583a3d118f8
|
|
| MD5 |
2e6c794bef1b44960b96de04ae925022
|
|
| BLAKE2b-256 |
475a69cfb670794d2ea92d55fa65b6be5e2688af7d0047be3b06e2e8552447d5
|
Provenance
The following attestation bundles were made for pytyr-0.0.28-cp313-cp313-macosx_11_0_arm64.whl:
Publisher:
release.yml on planning-and-learning/tyr
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
pytyr-0.0.28-cp313-cp313-macosx_11_0_arm64.whl -
Subject digest:
7942eb1c1d2b8e097e0af2897f81daaa2249ce82ff768bc64d28d583a3d118f8 - Sigstore transparency entry: 2146330252
- Sigstore integration time:
-
Permalink:
planning-and-learning/tyr@3559c622576c954046c3b3e42fe7496d047440fb -
Branch / Tag:
refs/tags/v0.0.28 - Owner: https://github.com/planning-and-learning
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@3559c622576c954046c3b3e42fe7496d047440fb -
Trigger Event:
push
-
Statement type:
File details
Details for the file pytyr-0.0.28-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.
File metadata
- Download URL: pytyr-0.0.28-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
- Upload date:
- Size: 4.8 MB
- Tags: CPython 3.12, manylinux: glibc 2.27+ x86-64, manylinux: glibc 2.28+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f53de5e9c63962bb5c9c08ab684060f5a9dda4e8e6cd7bfcc05c49a63877cd8d
|
|
| MD5 |
29fe7eed38c42ebf6e22a6fca88c9ce0
|
|
| BLAKE2b-256 |
481c884bec808371fefb2e49f8ad346bf9197b68ef858e8ef23c7acd3b750728
|
Provenance
The following attestation bundles were made for pytyr-0.0.28-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:
Publisher:
release.yml on planning-and-learning/tyr
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
pytyr-0.0.28-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl -
Subject digest:
f53de5e9c63962bb5c9c08ab684060f5a9dda4e8e6cd7bfcc05c49a63877cd8d - Sigstore transparency entry: 2146330416
- Sigstore integration time:
-
Permalink:
planning-and-learning/tyr@3559c622576c954046c3b3e42fe7496d047440fb -
Branch / Tag:
refs/tags/v0.0.28 - Owner: https://github.com/planning-and-learning
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@3559c622576c954046c3b3e42fe7496d047440fb -
Trigger Event:
push
-
Statement type:
File details
Details for the file pytyr-0.0.28-cp312-cp312-macosx_11_0_arm64.whl.
File metadata
- Download URL: pytyr-0.0.28-cp312-cp312-macosx_11_0_arm64.whl
- Upload date:
- Size: 3.4 MB
- Tags: CPython 3.12, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f0a6259dd839905c9cf6de83e5c3f6f0e7d9851d2931f9a3dd2154a13e56da8e
|
|
| MD5 |
eb80b5a0f20a761bb18616fe717179ec
|
|
| BLAKE2b-256 |
283f21db8daa9b99b1af44af3913223ebe075be025ca6c6ec160c9b5505e400d
|
Provenance
The following attestation bundles were made for pytyr-0.0.28-cp312-cp312-macosx_11_0_arm64.whl:
Publisher:
release.yml on planning-and-learning/tyr
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
pytyr-0.0.28-cp312-cp312-macosx_11_0_arm64.whl -
Subject digest:
f0a6259dd839905c9cf6de83e5c3f6f0e7d9851d2931f9a3dd2154a13e56da8e - Sigstore transparency entry: 2146330317
- Sigstore integration time:
-
Permalink:
planning-and-learning/tyr@3559c622576c954046c3b3e42fe7496d047440fb -
Branch / Tag:
refs/tags/v0.0.28 - Owner: https://github.com/planning-and-learning
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@3559c622576c954046c3b3e42fe7496d047440fb -
Trigger Event:
push
-
Statement type:
File details
Details for the file pytyr-0.0.28-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.
File metadata
- Download URL: pytyr-0.0.28-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
- Upload date:
- Size: 4.8 MB
- Tags: CPython 3.11, manylinux: glibc 2.27+ x86-64, manylinux: glibc 2.28+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7042b30d1a395a57e6fd72698f81a8ca409d3ca210a01fc9b21471215b89b9c9
|
|
| MD5 |
529f1e557aa7d4b6bf15102a19b87f1a
|
|
| BLAKE2b-256 |
232a7b4c4a89d3e79d86244601b82fd4c1e6f9c58105a00c64770a7b84bb4319
|
Provenance
The following attestation bundles were made for pytyr-0.0.28-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:
Publisher:
release.yml on planning-and-learning/tyr
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
pytyr-0.0.28-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl -
Subject digest:
7042b30d1a395a57e6fd72698f81a8ca409d3ca210a01fc9b21471215b89b9c9 - Sigstore transparency entry: 2146330373
- Sigstore integration time:
-
Permalink:
planning-and-learning/tyr@3559c622576c954046c3b3e42fe7496d047440fb -
Branch / Tag:
refs/tags/v0.0.28 - Owner: https://github.com/planning-and-learning
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@3559c622576c954046c3b3e42fe7496d047440fb -
Trigger Event:
push
-
Statement type:
File details
Details for the file pytyr-0.0.28-cp311-cp311-macosx_11_0_arm64.whl.
File metadata
- Download URL: pytyr-0.0.28-cp311-cp311-macosx_11_0_arm64.whl
- Upload date:
- Size: 3.4 MB
- Tags: CPython 3.11, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8d1b2655eb32c831b77d629fac9edb0dfae7090641283fe9eab41818c7329c79
|
|
| MD5 |
0777c4b3988f0778e43865a5b19f5115
|
|
| BLAKE2b-256 |
a83ff3e6545b3278a51045923fbc9657ce2cf037133757ecb63bfea7b2127f13
|
Provenance
The following attestation bundles were made for pytyr-0.0.28-cp311-cp311-macosx_11_0_arm64.whl:
Publisher:
release.yml on planning-and-learning/tyr
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
pytyr-0.0.28-cp311-cp311-macosx_11_0_arm64.whl -
Subject digest:
8d1b2655eb32c831b77d629fac9edb0dfae7090641283fe9eab41818c7329c79 - Sigstore transparency entry: 2146329835
- Sigstore integration time:
-
Permalink:
planning-and-learning/tyr@3559c622576c954046c3b3e42fe7496d047440fb -
Branch / Tag:
refs/tags/v0.0.28 - Owner: https://github.com/planning-and-learning
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@3559c622576c954046c3b3e42fe7496d047440fb -
Trigger Event:
push
-
Statement type:
File details
Details for the file pytyr-0.0.28-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.
File metadata
- Download URL: pytyr-0.0.28-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
- Upload date:
- Size: 4.8 MB
- Tags: CPython 3.10, manylinux: glibc 2.27+ x86-64, manylinux: glibc 2.28+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a4e18e67627f582d37dc9880491632c8e76ab4a451fd2904a39e412f83c05dd5
|
|
| MD5 |
a81c196b2c66331c90e6bbe2c5e10cd1
|
|
| BLAKE2b-256 |
a6659f8b81a85a0041b7771182bd1ac74fd3b2990f433421873ca54a377d4a97
|
Provenance
The following attestation bundles were made for pytyr-0.0.28-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:
Publisher:
release.yml on planning-and-learning/tyr
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
pytyr-0.0.28-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl -
Subject digest:
a4e18e67627f582d37dc9880491632c8e76ab4a451fd2904a39e412f83c05dd5 - Sigstore transparency entry: 2146329960
- Sigstore integration time:
-
Permalink:
planning-and-learning/tyr@3559c622576c954046c3b3e42fe7496d047440fb -
Branch / Tag:
refs/tags/v0.0.28 - Owner: https://github.com/planning-and-learning
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@3559c622576c954046c3b3e42fe7496d047440fb -
Trigger Event:
push
-
Statement type:
File details
Details for the file pytyr-0.0.28-cp310-cp310-macosx_11_0_arm64.whl.
File metadata
- Download URL: pytyr-0.0.28-cp310-cp310-macosx_11_0_arm64.whl
- Upload date:
- Size: 3.2 MB
- Tags: CPython 3.10, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b9fe40689761be2773ee4c12afe0ee59d2caab25960dae9a79be39adb9dfbbee
|
|
| MD5 |
81d38884e0b6a7230c6f31e70612f3e1
|
|
| BLAKE2b-256 |
ec3140feea6bf46cd8139509059edf41532446590bbb1aaf56ee16c5a33c82cb
|
Provenance
The following attestation bundles were made for pytyr-0.0.28-cp310-cp310-macosx_11_0_arm64.whl:
Publisher:
release.yml on planning-and-learning/tyr
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
pytyr-0.0.28-cp310-cp310-macosx_11_0_arm64.whl -
Subject digest:
b9fe40689761be2773ee4c12afe0ee59d2caab25960dae9a79be39adb9dfbbee - Sigstore transparency entry: 2146329746
- Sigstore integration time:
-
Permalink:
planning-and-learning/tyr@3559c622576c954046c3b3e42fe7496d047440fb -
Branch / Tag:
refs/tags/v0.0.28 - Owner: https://github.com/planning-and-learning
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@3559c622576c954046c3b3e42fe7496d047440fb -
Trigger Event:
push
-
Statement type:
File details
Details for the file pytyr-0.0.28-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.
File metadata
- Download URL: pytyr-0.0.28-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
- Upload date:
- Size: 4.8 MB
- Tags: CPython 3.9, manylinux: glibc 2.27+ x86-64, manylinux: glibc 2.28+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c11f6c7bd40d15709b854326f4285ff905ce4f53f4acd0ae3539dbe1bf6e3f4e
|
|
| MD5 |
fc968d162e502a9c1ea5671cc0abd394
|
|
| BLAKE2b-256 |
ad0cffd0effa382028f23d99224a81421f7b0c26381c468a83d906c737e703c9
|
Provenance
The following attestation bundles were made for pytyr-0.0.28-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:
Publisher:
release.yml on planning-and-learning/tyr
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
pytyr-0.0.28-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl -
Subject digest:
c11f6c7bd40d15709b854326f4285ff905ce4f53f4acd0ae3539dbe1bf6e3f4e - Sigstore transparency entry: 2146330105
- Sigstore integration time:
-
Permalink:
planning-and-learning/tyr@3559c622576c954046c3b3e42fe7496d047440fb -
Branch / Tag:
refs/tags/v0.0.28 - Owner: https://github.com/planning-and-learning
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@3559c622576c954046c3b3e42fe7496d047440fb -
Trigger Event:
push
-
Statement type:
File details
Details for the file pytyr-0.0.28-cp39-cp39-macosx_11_0_arm64.whl.
File metadata
- Download URL: pytyr-0.0.28-cp39-cp39-macosx_11_0_arm64.whl
- Upload date:
- Size: 3.2 MB
- Tags: CPython 3.9, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5f48ff6dd1dc128f741cb238016db6405c81bb7f9392849cc34d810dd4329a40
|
|
| MD5 |
20378f7346456b8045dc1c90b86a6591
|
|
| BLAKE2b-256 |
35d320b9e2c973f47607e94294475c1a1aac272ee22004f207c5c71d241511a7
|
Provenance
The following attestation bundles were made for pytyr-0.0.28-cp39-cp39-macosx_11_0_arm64.whl:
Publisher:
release.yml on planning-and-learning/tyr
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
pytyr-0.0.28-cp39-cp39-macosx_11_0_arm64.whl -
Subject digest:
5f48ff6dd1dc128f741cb238016db6405c81bb7f9392849cc34d810dd4329a40 - Sigstore transparency entry: 2146330031
- Sigstore integration time:
-
Permalink:
planning-and-learning/tyr@3559c622576c954046c3b3e42fe7496d047440fb -
Branch / Tag:
refs/tags/v0.0.28 - Owner: https://github.com/planning-and-learning
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@3559c622576c954046c3b3e42fe7496d047440fb -
Trigger Event:
push
-
Statement type: