Skip to main content

STRIPS states to graph encoding C++ extension module.

Project description

mifrost

mifrost is a high-performance graph encoding library for planning states and transitions. It combines C++ encoder engines (via nanobind) with Python-facing APIs. The API is native-first: encoders return BatchEncoding by default, and PyTorch Geometric (Data / HeteroData) objects are built on demand.

Unit & C++ Tests Install & Test Wheel Builds Performance Gate Docs Check

Workflow Platforms Python versions
Unit & C++ Tests macOS, Ubuntu 3.10-3.14
Install & Test macOS, Ubuntu 3.10-3.14
Wheel Builds macOS, manylinux, musllinux cibuildwheel cp3.(10-14)

| Docs Check | Ubuntu | 3.12 |

Documentation

What it does

  • Encodes planning states into graph structures for GNN pipelines.
  • Supports single, batch, and stream-oriented encoding workflows.
  • Exposes multiple encoder families:
    • HGraphEncoder
    • HorizonEncoder
    • TransitionHGraphEncoder / TransitionEffectsHGraphEncoder
    • ColorEncoder
    • ILGEncoder
  • Returns native BatchEncoding objects, with explicit helpers for:
    • PyG conversion (encode_pyg, encode_batch_pyg, as_pyg)

Requirements

  • Python >= 3.10
  • A working C++ toolchain
  • pymimir>=0.13.60 available in the Python environment used for build/runtime
  • For Python-side graph assembly: torch and torch-geometric
  • For source builds: Conan (or CONAN_COMMAND/CONAN_CMD pointing to it)

Python dependency files

  • requirements.txt: runtime Python dependency set
  • requirements/build.txt: Python tooling for source builds (conan, cmake, ninja, etc.)
  • requirements/test.txt: test-only Python dependencies
  • requirements/perf.txt: performance-gate dependencies
  • requirements/dev.txt: convenience union of build + test + perf
  • requirements/constraints-ci.txt: CI-only version constraints used by workflows
  • pyproject.toml extras: .[test], .[perf], .[dev]

Installation

From PyPI

pip install mifrost

From source (wheel)

git clone https://github.com/maichmueller/mifrost.git
cd mifrost
pip install .

If Conan is not on your PATH, set:

export CONAN_COMMAND=/path/to/conan

If pymimir is installed but CMake cannot locate it, set:

export MIFROST_MIMIR_CMAKE_DIR="$(python -c 'import pymimir; print(pymimir.get_cmake_dir())')"

Editable install (development)

python -m pip install --no-build-isolation \
  --config-settings=editable.rebuild=true \
  -Cbuild-dir=build_editable \
  -e .

This enables import-triggered rebuild behavior from scikit-build-core for local development.

Reusable C++ SDK from the installed package

Installed wheels also ship the reusable native SDK alongside the Python module:

python -c 'import mifrost; print(mifrost.get_include_dir())'
python -c 'import mifrost; print(mifrost.get_cmake_dir())'
python -c 'import mifrost; print(mifrost.get_library_dir())'

Use mifrost.get_cmake_dir() in downstream CMake projects to extend CMAKE_PREFIX_PATH or pass -Dmifrost_DIR="$(python -c 'import mifrost; print(mifrost.get_cmake_dir())')".

Quick start (native-first)

import mifrost

# domain: pymimir wrapper or advanced domain
encoder = mifrost.HGraphEncoder(domain)

# state: pymimir wrapper or advanced state
encoding = encoder.encode(state)         # BatchEncoding
data = encoding.as_pyg()                 # HeteroData

batch_encoding = encoder.encode_batch([state1, state2, state3])  # BatchEncoding
batch = batch_encoding.as_pyg(as_batch=True)                     # HeteroDataBatch

# explicit PyG convenience helpers
data2 = encoder.encode_pyg(state)
batch2 = encoder.encode_batch_pyg([state1, state2, state3])
encoding_dict = batch_encoding.as_dict()      # dictionary form
# note: encoding_dict["tensors"] entries are DLPack-exporting values
# (consume with torch.utils.dlpack.from_dlpack(...) or mifrost.encoding_to_tensors(...))

Example output (trimmed):

type(encoding): BatchEncoding
type(data): HeteroData
node_type_count: 28
node_types_head:
  ['[+]on[g]', '_symbol_', 'clear', 'object', 'ontable',
   '[+]clear[g]', '[+]clear[g][sat]', '[+]handempty[g]']
edge_type_count: 54

type(batch_encoding): BatchEncoding
type(batch): HeteroDataBatch
num_graphs: 3
node_type_count: 28

encoding keys:
  ['node_feature_dims', 'node_names', 'num_graphs', 'object_names', 'schema', 'tensors']
schema keys:
  ['edge_tensors', 'edge_types', 'extensions', 'flags', 'graph_kind',
   'node_tensors', 'node_types', 'version']
tensor_count: 164
tensor_keys_head:
  ['_symbol_|0|object/edge_index_0', '_symbol_|0|object/edge_index_1',
   'object|0|_symbol_/edge_index_0', 'object|0|_symbol_/edge_index_1', ...]

Stream workflow:

stream = encoder.stream()
stream.append(state1)
stream.append(state2)

batch_encoding = stream.flush()  # BatchEncoding
batch = batch_encoding.as_pyg(as_batch=True)    # HeteroDataBatch

# convenience
batch2 = stream.flush_pyg(as_batch=True)

# mutable stream (supports update/remove)
mutable = encoder.mutable_stream()
sid = mutable.append(state1)
mutable.update(sid, state2)
mutable.remove(sid)

Example output:

type(batch): HeteroDataBatch
num_graphs: 2
node_type_count: 28
node_types_head:
  ['[+]clear[g]', '[+]clear[g][sat]', '[+]handempty[g]', '[+]handempty[g][sat]',
   '[+]holding[g]', '[+]holding[g][sat]', '[+]on[g]', '[+]on[g][sat]']

Encoding quick lookup

C++ (HGraphEncoderEngine)

All methods append into an existing BatchBuilder (they do not clear it). Call builder.next_graph() to commit one graph.

  • encode(state, builder) / encode_state(state, builder)

    • State-only graph (objects + current facts).
  • encode_step<GoalTag>(state, goals_span, actions_span, builder)

    • Convenience overload for typed goal literals (wraps into GoalInputs internally).
  • encode(state, goals: GoalInputs, actions_span, builder)

    • Full step graph (state + goals + optional actions; plus optional derived relations depending on config).
  • encode(state, goals, actions_span, history_subgoals, history_max_steps, builder)

    • Full step graph plus history nodes/links (dt-tagged subgoals).

C++ streaming

  • HGraphStreamEncoder (append-only)

    • Direct append into one persistent builder.
    • append(...) -> id, flush(), flush_pyg(), reset().
  • HGraphMutableStreamEncoder (cached/mutable, via StreamEncoderBase)

    • Supports update/remove with id stability and cache merge on flush.
    • append(...) -> id, update(id, ...), remove(id), flush(), flush_pyg(), reset(), set_reuse_removed(bool).

Python (HGraphEncoder)

  • encode(state, *, ...) -> BatchEncoding

    • One graph, native encoding object.
  • encode_pyg(state, *, ...) -> HeteroData

    • One graph, explicit PyG conversion path.
  • encode_batch(states, *, ...) -> BatchEncoding

    • Many graphs, native batch encoding object.
  • encode_batch_pyg(states, *, ...) -> HeteroDataBatch

    • Many graphs, explicit PyG conversion path.
  • encode_batch argument semantics

    • states is always the batch axis.

    • Each extra batch argument is either shared (applies to all states) or a per-state sequence of length len(states) with optional None entries.

    • Batch parsing/execution is C++-backed across encoders.

    • High-level encode_batch(...) accepts wrapper/native planning inputs and converts wrapper/adapter-backed values in Python before entering the C++ batch parser.

    • Low-level _core._parse_* helpers and C++ batch internals are strict advanced-only.

    • Unsupported batch kwargs are ignored silently by encoder batch APIs.

    • Per-state argument length mismatches raise ValueError.

    • Example:

      • Shared goals/actions:
        • encoder.encode_batch(states, goals=goals, actions=actions)
      • Per-state goals/actions:
        • encoder.encode_batch(states, goals=[goals0, goals1], actions=[[a0], None])
    • Migration notes (hard break):

      • Old encoder-specific inference/ignoring of batch kwargs was removed.
      • Low-level _core._parse_* batch parser helpers no longer accept adapter-backed custom Python types.
        • High-level encoder encode_batch(...) now performs Python-side adapter conversion.
      • Transition*Encoder requires aligned successors; unsupported kwargs are ignored.
      • HorizonEncoder accepts per-state dags/goals/subgoal_layers; unsupported kwargs are ignored.
      • ColorEncoder ignores actions in batch mode.
  • stream() -> HGraphEncoderStream

    • Create an append-only stream encoder backed by the same C++ engine.
  • mutable_stream() -> HGraphMutableEncoderStream

    • Create a mutable stream encoder supporting update/remove.

Python streaming (HGraphEncoderStream, append-only)

  • append(state, *, goals=None, actions=None, subgoal_layers=None, history_subgoals=None, history_max_steps=None) -> id
  • flush() -> BatchEncoding
  • flush_pyg(...) -> PyG

Python mutable streaming (HGraphMutableEncoderStream)

Cached stream wrapper (ids + edits), merges on flush.

  • append(state, *, goals=None, actions=None, subgoal_layers=None, history_subgoals=None, history_max_steps=None) -> id
  • update(id, state, *, ...)
  • remove(id)
  • flush() -> BatchEncoding
  • flush_pyg(...) -> PyG

Extending input types (adapter API)

Encoders are strict for native pymimir (advanced) types, but you can register explicit adapters for custom wrappers:

import mifrost

mifrost.register_state_adapter(MyStateType, lambda s: s.to_advanced_state())
mifrost.register_domain_adapter(MyDomainType, lambda d: d.to_advanced_domain())
mifrost.register_literal_adapter(MyLiteralType, lambda l: l.to_advanced_literal())
mifrost.register_action_adapter(MyActionType, lambda a: a.to_advanced_action())

Adapters are matched by exact concrete type.

Batch hard-break note:

  • High-level encode_batch(...) / encode_batch_pyg(...) use adapter registries during Python-side preprocessing before calling strict C++ batch parsing.
  • Direct low-level _core._parse_* batch helper calls remain advanced-only and reject adapter-backed objects.

Development

Configure and build C++ targets

python configure.py --config Release --build_dir build
python cbuild.py build

Or use CMake presets:

cmake --preset local-release
cmake --build build/local-release

Build benchmarks:

python configure.py --config Release --build_dir build_bench --with_benchmarks
python cbuild.py build_bench --bench

Batch collation microbenchmark (batch_encodings, including pyobj collation):

python scripts/benchmark_batch_encodings.py --repeats 400 --warmup 50

Tests

Python tests:

pytest -q

C++ tests (after configure/build):

./build/<...>/src/mifrost_tests

Profiling

python scripts/profile_encoding.py --domain blocks --problem small
python scripts/profile_encoding.py --profile cprofile --include-goals
python scripts/profile_encoding.py --benchmark-pyg --no-export-node-names

Comprehensive scaling benchmark suite (diverse state batches, goals/actions combinations, transition encoders, horizon DAG-size sweeps):

python scripts/benchmark_encoder_suite.py \
  --domain blocks \
  --problem smedium \
  --max-states 256 \
  --batch-sizes 8,32,128 \
  --horizon-dag-sizes 8,32,64 \
  --horizon-batch-sizes 4,16 \
  --include-lgan-values false,true \
  --repeats 5 \
  --warmup 1 \
  --output-json /tmp/encoder_bench_suite.json

Include PyG conversion paths in the same run:

python scripts/benchmark_encoder_suite.py --benchmark-pyg

Output assembly notes

  • Native-first:
    • encode(...) / encode_batch(...) return BatchEncoding.
    • BatchEncoding.as_pyg(...) converts to PyG.
  • Convenience:
    • encode_pyg(...) / encode_batch_pyg(...) return PyG directly.
  • BatchEncoding supports as_dict(), schema_fingerprint(), save(...), load(...).
  • mifrost.batch_encodings([...]) batches single-graph encodings natively with schema checks.
  • Use mifrost.encoding_to_tensors(encoding.as_dict()) when feeding a custom downstream pipeline.

Encoder architecture note

  • See src/ENCODER_INHERITANCE_ARCHITECTURE.md for the C++/Python inheritance and config layering used by hetero encoders.

License

GPL-3.0-only

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

mifrost-0.3.1.tar.gz (399.9 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

mifrost-0.3.1-cp314-cp314-musllinux_1_2_x86_64.whl (5.8 MB view details)

Uploaded CPython 3.14musllinux: musl 1.2+ x86-64

mifrost-0.3.1-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (4.2 MB view details)

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

mifrost-0.3.1-cp314-cp314-macosx_11_0_arm64.whl (2.9 MB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

mifrost-0.3.1-cp313-cp313-musllinux_1_2_x86_64.whl (6.9 MB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ x86-64

mifrost-0.3.1-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

mifrost-0.3.1-cp313-cp313-macosx_11_0_arm64.whl (2.9 MB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

mifrost-0.3.1-cp312-cp312-musllinux_1_2_x86_64.whl (6.9 MB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ x86-64

mifrost-0.3.1-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

mifrost-0.3.1-cp312-cp312-macosx_11_0_arm64.whl (2.9 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

mifrost-0.3.1-cp311-cp311-musllinux_1_2_x86_64.whl (6.9 MB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ x86-64

mifrost-0.3.1-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (4.2 MB view details)

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

mifrost-0.3.1-cp311-cp311-macosx_11_0_arm64.whl (2.9 MB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

mifrost-0.3.1-cp310-cp310-musllinux_1_2_x86_64.whl (6.9 MB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ x86-64

mifrost-0.3.1-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (4.2 MB view details)

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

mifrost-0.3.1-cp310-cp310-macosx_11_0_arm64.whl (2.9 MB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

File details

Details for the file mifrost-0.3.1.tar.gz.

File metadata

  • Download URL: mifrost-0.3.1.tar.gz
  • Upload date:
  • Size: 399.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for mifrost-0.3.1.tar.gz
Algorithm Hash digest
SHA256 362829146592be65aef774209e89acb802c530ebdaeaa62fd0ea8b07e38c128a
MD5 3534344ce5527f3ca925e510c237325a
BLAKE2b-256 ad172c24156bbe66995082f95919be96262b8f0ba6e612447fee8bd4cc051568

See more details on using hashes here.

Provenance

The following attestation bundles were made for mifrost-0.3.1.tar.gz:

Publisher: wheels.yml on maichmueller/mifrost

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file mifrost-0.3.1-cp314-cp314-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for mifrost-0.3.1-cp314-cp314-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 0bfc66f1ce1f82e4652b307e0dc89928dc7b9c1e4affd478e32241f8220d221a
MD5 cd15b764f46097bd8721011b1fed8894
BLAKE2b-256 8237c1f6e857e045875cad6021e7186f23f8dba32bc94aa526041efbad563f29

See more details on using hashes here.

Provenance

The following attestation bundles were made for mifrost-0.3.1-cp314-cp314-musllinux_1_2_x86_64.whl:

Publisher: wheels.yml on maichmueller/mifrost

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file mifrost-0.3.1-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for mifrost-0.3.1-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 f9f21beed8a43c3dfa24f4722673f80c59e3c16b719d99215fd517a1a02eb31e
MD5 9e67948078337527b6c2926134e14b0d
BLAKE2b-256 4f6c320bb5c3c066b6bc20882bc83de1d89577f7e3b5a19610b64dfedac7fae5

See more details on using hashes here.

Provenance

The following attestation bundles were made for mifrost-0.3.1-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:

Publisher: wheels.yml on maichmueller/mifrost

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file mifrost-0.3.1-cp314-cp314-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for mifrost-0.3.1-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 498ce5f789d9025bef847f1ac4177c92dc1a20c25dd9850dd550a7a6b0ca92a2
MD5 4d5e7ffe487fb12d3a0c930444ec65b7
BLAKE2b-256 878ebd1f675bdcdcfd0a21ecac67103f20781fd917bece3ab5df724e0a413e77

See more details on using hashes here.

Provenance

The following attestation bundles were made for mifrost-0.3.1-cp314-cp314-macosx_11_0_arm64.whl:

Publisher: wheels.yml on maichmueller/mifrost

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file mifrost-0.3.1-cp313-cp313-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for mifrost-0.3.1-cp313-cp313-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 a563f9dc57a86f7918386954b15d764666a54a5b7d9c7c5a539248d2be6dd504
MD5 2bfbec636138548805fbf5754eddb9df
BLAKE2b-256 cb82229dc0f097d221de50f2430c0cf7d2537b596f1d39de33e5cb2cdcd8b795

See more details on using hashes here.

Provenance

The following attestation bundles were made for mifrost-0.3.1-cp313-cp313-musllinux_1_2_x86_64.whl:

Publisher: wheels.yml on maichmueller/mifrost

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file mifrost-0.3.1-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for mifrost-0.3.1-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 76d9f5c4c8a97f078e908cac7d18698abb2d838955ff046771b409cbe27fad39
MD5 c7a139e6608b17626a8b95ab546b4161
BLAKE2b-256 f81e5496f89fa89eb775e893a6589b4991a0c04e9cd38b8b0809e779098d1914

See more details on using hashes here.

Provenance

The following attestation bundles were made for mifrost-0.3.1-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:

Publisher: wheels.yml on maichmueller/mifrost

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file mifrost-0.3.1-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for mifrost-0.3.1-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 69faa405d0213e2c1fa83d8d945c7e22516c33a4df63d13531fe4ad63093e771
MD5 03f08c9569b71cab48c461586b994f09
BLAKE2b-256 ea010bc151a76ffcfce3df0ab4172ea03924761da9e6cf1c1c21f07a197cd1a3

See more details on using hashes here.

Provenance

The following attestation bundles were made for mifrost-0.3.1-cp313-cp313-macosx_11_0_arm64.whl:

Publisher: wheels.yml on maichmueller/mifrost

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file mifrost-0.3.1-cp312-cp312-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for mifrost-0.3.1-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 05c4697626ebad01d85645809ee83a8c76091f23caac15106ff4a7a8c10181d4
MD5 9c350dcb4cc17f32b66e1115ad458f3a
BLAKE2b-256 dc4022d70efeba3c555dbefa89c8584f6831d172baf6425e7502c36e57ffdc3b

See more details on using hashes here.

Provenance

The following attestation bundles were made for mifrost-0.3.1-cp312-cp312-musllinux_1_2_x86_64.whl:

Publisher: wheels.yml on maichmueller/mifrost

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file mifrost-0.3.1-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for mifrost-0.3.1-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 981da8ea15d39154694ba9611a3cfa47a989196726cc3d240766f1406c901099
MD5 a528891da2a89acf0e9e07f4d12fbe0c
BLAKE2b-256 5d90919de95d3e68a236b6f4ecf93ebb346ebaad68219b0a1c24782ccc792369

See more details on using hashes here.

Provenance

The following attestation bundles were made for mifrost-0.3.1-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:

Publisher: wheels.yml on maichmueller/mifrost

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file mifrost-0.3.1-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for mifrost-0.3.1-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 f7cd795f5b57f46cf69611925603bfb4224d4a427c5f0ab1941bcc0fd3d6912d
MD5 42b92a7efc772dd800e7b3df8a2a2ce1
BLAKE2b-256 92b20d07f213d15e6e3b70dfb79344312dd0f65d63064e28332aede5368e54ff

See more details on using hashes here.

Provenance

The following attestation bundles were made for mifrost-0.3.1-cp312-cp312-macosx_11_0_arm64.whl:

Publisher: wheels.yml on maichmueller/mifrost

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file mifrost-0.3.1-cp311-cp311-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for mifrost-0.3.1-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 d3a150ccda0780aaddacc98ae7f0626ac627f64fc5ba01da8eec6a8207d052c9
MD5 cd9d48aedb7a93bfab2477d4ea134be7
BLAKE2b-256 a5327b7c8eaf6fa87275d46b5efbeb3a9391a7e1002a9d054c48923439fa9baa

See more details on using hashes here.

Provenance

The following attestation bundles were made for mifrost-0.3.1-cp311-cp311-musllinux_1_2_x86_64.whl:

Publisher: wheels.yml on maichmueller/mifrost

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file mifrost-0.3.1-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for mifrost-0.3.1-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 3165993b6de6ce305d9460416de904d30e8cc8c0ab634d48cea6a58f76fdd2de
MD5 d518920459d367a72c831f9a04c145af
BLAKE2b-256 e207d7bfb01fc07c20e13c3b5864e0fedb4ea0aa538e53115f10857c15fe9416

See more details on using hashes here.

Provenance

The following attestation bundles were made for mifrost-0.3.1-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:

Publisher: wheels.yml on maichmueller/mifrost

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file mifrost-0.3.1-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for mifrost-0.3.1-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 66467903b0a72c9c0ddb29aa164cbce6dcebfdd4eadb7a32ec171505d3a4c245
MD5 489d9e678445a25f4cb55825761d58d4
BLAKE2b-256 d29bbcf5854d6bd47d1c0db8fc941c72498ccaa35a682c0c12c02dc3c1a18007

See more details on using hashes here.

Provenance

The following attestation bundles were made for mifrost-0.3.1-cp311-cp311-macosx_11_0_arm64.whl:

Publisher: wheels.yml on maichmueller/mifrost

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file mifrost-0.3.1-cp310-cp310-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for mifrost-0.3.1-cp310-cp310-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 8fc3698da270fef18a0dc36d66aa5eb29c545599c22c0f4892e3080631b09fd3
MD5 703f75e6c7119f6dd37e0c2e7a1af768
BLAKE2b-256 3ac8d498250ab52f3cfb4d830557d9c48405d14c2bbded78d185fa501d920c79

See more details on using hashes here.

Provenance

The following attestation bundles were made for mifrost-0.3.1-cp310-cp310-musllinux_1_2_x86_64.whl:

Publisher: wheels.yml on maichmueller/mifrost

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file mifrost-0.3.1-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for mifrost-0.3.1-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 fc7351982dbc16df9f6093f2ca72cbdd7bccb1588090789360c8c95d09c3b26a
MD5 d51a8292830096a11c6ffbfbe2b088c6
BLAKE2b-256 f5117bb60987e58b63f50ca1b881b793148e4f3beb4f89107c6e9c7aadd03b91

See more details on using hashes here.

Provenance

The following attestation bundles were made for mifrost-0.3.1-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:

Publisher: wheels.yml on maichmueller/mifrost

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file mifrost-0.3.1-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for mifrost-0.3.1-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 f15327de7143993d1cd65fa3ee9f4829a155683cff0caba6c145fa2e79c12e1e
MD5 af219ea91d81af51c3b8194f933c726f
BLAKE2b-256 0e62ed89ba2894d0fee747016a9d83035f5d6346aea3db7cad712745a63e4a57

See more details on using hashes here.

Provenance

The following attestation bundles were made for mifrost-0.3.1-cp310-cp310-macosx_11_0_arm64.whl:

Publisher: wheels.yml on maichmueller/mifrost

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