python-rheaps
Python bindings for rheaps, a Rust library of heap /
priority-queue data structures, built with PyO3 and
maturin. rheaps is itself a Rust port of
JHeaps; this package gives Python the
same broad selection of heap algorithms as native, object-oriented classes.
Features
- 31 heap classes across four families: array-backed, tree-based, DAG-based, and monotone radix heaps.
- Flexible keys. Every general-purpose heap accepts
key_type=int,key_type=float, or the defaultkey_type=object(any Python object, ordered via its own__lt__/__eq__, exactly likeheapq).int/floatkeys use Rust's native comparisons with no per-comparison Python callback. - Arbitrary values. Every entry can carry an arbitrary Python object as
its value (defaults to
Noneif omitted), independent of the key type. - Checked handles. Addressable heaps return a handle from
insert()used to inspect, update, decrease, or delete that entry later. A handle is rejected withValueErrorif it's stale (its entry was removed, or the heap was cleared) or belongs to a different heap instance. - No garbage collection surprises. Heap state lives inside the Rust
object; there's no manual cleanup,
close(), or context manager to remember.
Installation
Not yet published to PyPI. Build and install from source with maturin:
python3 -m venv .venv
source .venv/bin/activate
pip install maturin
maturin develop # builds the extension and installs it into the venv
# maturin develop --release # for an optimized build
Requires a Rust toolchain (stable, edition 2024 support — 1.88+) to build.
Quick start
A plain, value-only heap (like heapq, but with more algorithm choices):
import rheaps
heap = rheaps.BinaryArrayHeap()
heap.push(4)
heap.push(1)
heap.push(3)
assert heap.peek() == 1
assert heap.pop() == 1
assert heap.pop() == 3
An addressable heap, where insert() returns a handle you can use later:
heap = rheaps.PairingHeap()
task = heap.insert(10, "compile report")
heap.insert(5, "answer mail")
heap.decrease_key(task, 1)
assert heap.peek() == (task, 1, "compile report")
assert heap.delete(task) == (1, "compile report")
assert heap.pop() == (5, "answer mail")
Melding combines two heaps of the same class and key_type. The donor is
left as a valid, empty heap afterward — Python has no move semantics, so
unlike Rust's rheaps (which makes reusing a melded-away heap a compile
error), reusing the donor here is well-defined, just empty:
a = rheaps.PairingHeap()
a.insert(3)
a.insert(5)
b = rheaps.PairingHeap()
deadline = b.insert(4)
b.insert(9)
a.meld(b) # b's entries move into a; handles b issued stay valid
a.decrease_key(deadline, 1)
assert [a.pop()[0] for _ in range(4)] == [1, 3, 5, 9]
assert len(b) == 0 # b is still a usable, empty PairingHeap
Note that insert() (not push()) is the entry point for every addressable
heap in the table below — push/peek/pop (no handle) are reserved for
the plain, value-only heaps.
Choosing a key type
rheaps.BinaryArrayHeap() # key_type=object (default): any comparable Python object
rheaps.BinaryArrayHeap(key_type=int) # native i64 keys, fastest
rheaps.BinaryArrayHeap(key_type=float) # native finite f64 keys, fastest
key_type is fixed for the lifetime of the heap (chosen once at
construction) and two heaps must share it to meld(). Comparing
incompatible objects under key_type=object raises TypeError, the same as
it would from plain a < b.
Choosing an implementation
| Class | Family | Addressable | Decrease key | Meld | Notes |
|---|---|---|---|---|---|
BinaryArrayHeap |
array | no | – | no | smallest, cache-friendly default |
DaryArrayHeap(degree) |
array | no | – | no | larger degree = cheaper insert, pricier removal |
BinaryArrayWeakHeap |
array | no | – | no | relaxed invariant, fewer comparisons |
BinaryArrayBulkInsertWeakHeap |
array | no | – | no | weak heap tuned for bulk insertion |
MinMaxBinaryArrayDoubleEndedHeap |
array | no | – | no | peek_max()/pop_max() too |
BinaryArrayAddressableHeap |
array | yes | yes | no | array-backed with handles |
DaryArrayAddressableHeap(degree) |
array | yes | yes | no | as above, d-ary |
PairingHeap |
tree | yes | yes | yes | good all-round default for meld + decrease-key |
PurePairingHeap |
tree | yes | yes | yes | pairing-heap variant |
CostlessMeldPairingHeap |
tree | yes | yes | yes | pairing-heap variant |
RankPairingHeap |
tree | yes | yes | yes | pairing-heap variant |
LeftistHeap |
tree | yes | yes | yes | classic leftist heap |
SkewHeap |
tree | yes | yes | yes | self-adjusting, no extra per-node state |
FibonacciHeap |
tree | yes | yes | yes | amortized O(1) decrease-key |
SimpleFibonacciHeap |
tree | yes | yes | yes | Fibonacci-heap variant |
StrictFibonacciHeap |
tree | yes | yes | yes | worst-case (not just amortized) bounds |
BinaryTreeAddressableHeap |
tree | yes | yes | no | node-based binary heap with handles |
DaryTreeAddressableHeap(degree) |
tree | yes | yes | no | degree must be a power of two, ≥ 2 |
ReflectedFibonacciHeap |
tree | yes | yes | yes | double-ended (peek_max/pop_max/increase_key) |
ReflectedPairingHeap |
tree | yes | yes | yes | double-ended (peek_max/pop_max/increase_key) |
SoftHeap(error_rate) |
tree | no | no | yes (fallible) | corruption-bounded; trades some wrong keys for speed |
SoftAddressableHeap(error_rate) |
tree | yes | no | yes (fallible) | can't decrease-key: corruption bound isn't tracked per-entry |
HollowHeap |
dag | yes | yes | yes | decrease-key/meld without cutting nodes from a parent |
U32RadixHeap(min, max) |
monotone | no | – | no | keys removed in nondecreasing order (e.g. Dijkstra) |
U64RadixHeap(min, max) |
monotone | no | – | no | as above, 64-bit keys |
F64RadixHeap(min, max) |
monotone | no | – | no | as above, finite float keys |
BigUintRadixHeap(min, max) |
monotone | no | – | no | as above, arbitrary-precision non-negative integer keys |
U32RadixAddressableHeap(min, max) |
monotone | yes | yes | no | addressable counterpart |
U64RadixAddressableHeap(min, max) |
monotone | yes | yes | no | addressable counterpart |
F64RadixAddressableHeap(min, max) |
monotone | yes | yes | no | addressable counterpart |
BigUintRadixAddressableHeap(min, max) |
monotone | yes | yes | no | addressable counterpart |
Every class above except the radix heaps takes key_type=int|float|object
(default object); radix heaps have a fixed native key type baked into the
class name instead, since their bucket structure depends on it.
API reference
Value-only heaps (Heap-shaped: BinaryArrayHeap, DaryArrayHeap, the weak heaps, MinMaxBinaryArrayDoubleEndedHeap, SoftHeap)
| Method | Description |
|---|---|
push(key) |
Insert key. |
peek() |
Return the minimum key, or None if empty. |
pop() |
Remove and return the minimum key, or None if empty. |
len(heap) |
Number of entries. |
is_empty() |
Whether the heap has no entries. |
clear() |
Remove every entry. |
MinMaxBinaryArrayDoubleEndedHeap additionally has peek_max()/pop_max().
SoftHeap additionally has rank_limit() and a fallible meld(other) (see
Soft heaps below).
Addressable heaps (everything else, except radix heaps)
| Method | Description |
|---|---|
insert(key, value=None) |
Insert an entry, returning a handle. |
peek() |
Return (handle, key, value) for a minimum entry, or None. |
pop() |
Remove and return (key, value) for a minimum entry, or None. |
key(handle) |
The key addressed by handle. Raises ValueError if stale/foreign. |
value(handle) |
The value addressed by handle. Raises ValueError if stale/foreign. |
set_value(handle, value) |
Replace the value addressed by handle. |
delete(handle) |
Remove and return (key, value) for handle. |
len(heap) / is_empty() / clear() |
As above. |
decrease_key(handle, key)* |
Decrease the key addressed by handle. Raises ValueError if key isn't lower, or the handle is invalid. |
meld(other)* |
Absorb other (same class and key_type); other is left empty. |
peek_max() / pop_max() / increase_key(handle, key)* |
Only on double-ended heaps (ReflectedFibonacciHeap, ReflectedPairingHeap). |
* Only on classes that support that capability — see the table above
(SoftAddressableHeap has no decrease_key; the non-meldable classes have no
meld).
Radix heaps (monotone)
Radix heaps enforce that removed keys are nondecreasing: once a key is
popped, no smaller key may be inserted or decrease_key'd below it. They
also require a fixed inclusive [minimum_key, maximum_key] range at
construction. Violating either raises ValueError.
| Method | Description |
|---|---|
Cls(minimum_key, maximum_key) |
Construct with inclusive key bounds. |
try_push(key) (non-addressable) / try_insert(key, value=None) (addressable) |
Insert, raising ValueError on an out-of-range or non-monotone key. |
peek(), pop(), len(heap), is_empty(), clear() |
As above. |
bucket_count() |
Number of radix buckets the heap allocated. |
(addressable only) key(), value(), set_value(), delete(), decrease_key() |
As above; decrease_key still enforces monotonicity. |
Soft heaps
SoftHeap/SoftAddressableHeap implement a Kaplan-Zwick soft heap: in
exchange for faster operations, up to error_rate (a fraction between 0 and
1, exclusive) of keys may be corrupted (silently increased) at any time.
Use them when an approximately-correct minimum is acceptable — for example,
as a building block inside a minimum spanning tree algorithm. Neither
supports decrease_key, since corruption means the heap no longer tracks
each entry's exact position.
Error handling
| Situation | Exception |
|---|---|
| Stale or foreign handle | ValueError |
decrease_key/increase_key with a key that doesn't strictly move that direction |
ValueError |
Invalid construction parameter (non-power-of-two/too-small degree, out-of-(0,1) error_rate, invalid radix bounds) |
ValueError |
| Radix heap key out of range, or lower than the last removed key | ValueError |
Non-finite (nan/inf) key under key_type=float or in an F64Radix* heap |
ValueError |
Wrong Python type for key_type=int/float (e.g. a string) |
TypeError |
Incomparable objects under key_type=object |
TypeError (same as the underlying <) |
meld() between heaps of different key_type |
ValueError |
Empty heap (peek/pop/pop_max) |
not an error — returns None |
Development
python3 -m venv .venv
source .venv/bin/activate
pip install maturin pytest
maturin develop
pytest
tests/test_large_scale.py ports the large-scale conformance invariants
rheaps' own Rust test suite exercises against each implementation
(thousands of ascending/random/decreasing-key operations checked against a
plain sorted() oracle, arbitrary-order deletion, melding, and — for soft
heaps — the weaker "every inserted key eventually comes back out, in some
order" invariant that corruption permits) across every parametrized heap
class. It runs as part of the same pytest invocation (a few extra seconds),
not a separate opt-in suite.
The Rust source lives in src/:
key.rs— theint/float/objectkey representations and conversions.error.rs—rheapserror types → Python exceptions.handles.rs— one#[pyclass]perrheapshandle type.macros.rs— shared codegen: each heap-trait shape (Heap,AddressableHeap+DecreaseKeyHeap,MeldableAddressableHeap,DoubleEndedAddressableHeap, and the radix-heap shapes) gets one macro that a concrete heap module composes.heaps/{array,tree,dag,monotone}.rs— the 31 concrete heap classes, mostly a handful of lines each invoking the shared macros.
Documentation
Full documentation (API reference, tutorials, and an example gallery) is built with Sphinx:
source .venv/bin/activate
pip install -e ".[docs]" # sphinx, sphinx-rtd-theme, sphinx-gallery, matplotlib, pillow
make -C docs html
The rendered pages land in docs/_build/html/index.html. The source lives
in docs/:
docs/api/—introduction.rst(heap inventory by family),heaps.rstandhandles.rst(autoclassreference for every heap and handle class).docs/tutorials/— a walkthrough of the addressable-heap API (insert/peek/decrease_key/delete/meld).docs/install.rst,docs/license.rst,docs/credits.rst.
examples/ holds the sphinx-gallery
scripts rendered into that documentation build (addressable/, array/,
monotone/, one plain, runnable .py file per example) — run any of them
directly with python3 examples/addressable/plot_pairing.py without
building the docs.
Relationship to rheaps and JHeaps
This package is a thin PyO3 wrapper: it doesn't reimplement any algorithm,
it just exposes the rheaps crate — an idiomatic
Rust port of JHeaps — as Python
classes. If you use this library, consider citing the paper describing the
algorithms and implementation set it's derived from:
D. Michail. JHeaps: An open-source library of priority queues. SoftwareX, 16:100869, 2021. https://doi.org/10.1016/j.softx.2021.100869
License
Copyright 2024-2026 Dimitrios Michail
Licensed under the Apache License, Version 2.0 (the "License"); you may not
use this project's files except in compliance with the License. You may
obtain a copy of the License at
https://www.apache.org/licenses/LICENSE-2.0, or see the LICENSE
file in this repository.
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
SPDX-License-Identifier: Apache-2.0
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 rheaps-0.16.0.tar.gz.
File metadata
- Download URL: rheaps-0.16.0.tar.gz
- Upload date:
- Size: 44.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
bfc306b5cf8cc734393e5736d31f18c378f22bc7dd7d70baa5874f79f887e472
|
|
| MD5 |
bbe846fdb3ca64a58b7177caa8793365
|
|
| BLAKE2b-256 |
55b9c13befafa5cc9733e866c9ba5a447ff63921e88cd5d1fbe9b0762f9afad8
|
File details
Details for the file rheaps-0.16.0-cp314-cp314-win_amd64.whl.
File metadata
- Download URL: rheaps-0.16.0-cp314-cp314-win_amd64.whl
- Upload date:
- Size: 524.5 kB
- Tags: CPython 3.14, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d492e48aaa06ee9468695bff0f3dc5b6a17b64559f02736e054e1f472ce5eee8
|
|
| MD5 |
e70813aa37256415e35deb1fa1d80f0a
|
|
| BLAKE2b-256 |
e6a1e8ac5f61bff925fea6b0b3108b797c238e8d6c6a989a932f2bb236ee821e
|
File details
Details for the file rheaps-0.16.0-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: rheaps-0.16.0-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 626.3 kB
- Tags: CPython 3.14, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
666a2e8a1b91c210aca18af93f33ba82b69bdf6635fe68b6ef3e511f5d12ff58
|
|
| MD5 |
1a73faaf6bf32e2534bc7294d9999e75
|
|
| BLAKE2b-256 |
02cf9e26d9f3f786b1d14312d5c4fe2459a4d9e268b32a65b065f0ac42bba900
|
File details
Details for the file rheaps-0.16.0-cp314-cp314-macosx_11_0_arm64.whl.
File metadata
- Download URL: rheaps-0.16.0-cp314-cp314-macosx_11_0_arm64.whl
- Upload date:
- Size: 569.3 kB
- Tags: CPython 3.14, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b16a108942e5e7cda4d70e5cddf0737af8d6ce83427990073c78d4579cdb3316
|
|
| MD5 |
7bd07edb0beeb897b640208ffda24878
|
|
| BLAKE2b-256 |
e5ca352391c5f0d8be125d3f63dfd99a2023cf7c0a43b57760a68b13217c2eab
|
File details
Details for the file rheaps-0.16.0-cp313-cp313-win_amd64.whl.
File metadata
- Download URL: rheaps-0.16.0-cp313-cp313-win_amd64.whl
- Upload date:
- Size: 522.3 kB
- Tags: CPython 3.13, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4034ce27c75add7d18c96aae9e1b04fbf392669d80ed1009f45ee5bf137972ba
|
|
| MD5 |
dbc04b15ddf6f4989239570be99776f0
|
|
| BLAKE2b-256 |
0ef6026323f45c7a8d18633fefe3b11d8861692063ee3ee7406aaaa803145b27
|
File details
Details for the file rheaps-0.16.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: rheaps-0.16.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 624.6 kB
- Tags: CPython 3.13, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e76bd99ba742334ff26e32c6fc3efe8a724ab203b0d62585bf7700da77c1f5b6
|
|
| MD5 |
e15186cd890bfa59938ddb1ff71364a4
|
|
| BLAKE2b-256 |
919c9e385046aa49aeabfd78ee38c63106ceb87d7b5b5c9f700576b3a8cb6634
|
File details
Details for the file rheaps-0.16.0-cp313-cp313-macosx_11_0_arm64.whl.
File metadata
- Download URL: rheaps-0.16.0-cp313-cp313-macosx_11_0_arm64.whl
- Upload date:
- Size: 568.5 kB
- Tags: CPython 3.13, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5088a0e7179d073a6feb6d67a3e2d27f3ac33808949cfc6ef6f5b5ec64e4835b
|
|
| MD5 |
2e316079b39b19b962e122ae95265651
|
|
| BLAKE2b-256 |
736ecf802ed1b0fe8e0b490372dd891c21280e3843f08738fdfb154c025be844
|
File details
Details for the file rheaps-0.16.0-cp312-cp312-win_amd64.whl.
File metadata
- Download URL: rheaps-0.16.0-cp312-cp312-win_amd64.whl
- Upload date:
- Size: 523.9 kB
- Tags: CPython 3.12, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a759ca94a9dd85aef207df60298201e072d80d50d5c0be92f22e8bcaeffcddc6
|
|
| MD5 |
69067e78b55fe4c9e5ac2ef9804bd946
|
|
| BLAKE2b-256 |
990469a7be01800f7655e33be85dbbbf89d10c4cf30be89a326b242db72c48d7
|
File details
Details for the file rheaps-0.16.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: rheaps-0.16.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 625.8 kB
- Tags: CPython 3.12, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ec27701d01f7780a4c1b331e3b65aaa6af0bf2566f1156bf4cc2ea441084e2c1
|
|
| MD5 |
69ffbc9cf9229b84eba0b4dc5171476b
|
|
| BLAKE2b-256 |
38067aaebd1a125381ab48f573828cceaeefc9a46b4e5da9b7316fa5e30a007d
|
File details
Details for the file rheaps-0.16.0-cp312-cp312-macosx_11_0_arm64.whl.
File metadata
- Download URL: rheaps-0.16.0-cp312-cp312-macosx_11_0_arm64.whl
- Upload date:
- Size: 571.7 kB
- Tags: CPython 3.12, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
260e7a2bfd76c34df05db2a7f90c2f4c7e35781ce9a9be7888ffafdd943519bd
|
|
| MD5 |
adae8d16549686ff49b2a8573e738d20
|
|
| BLAKE2b-256 |
e7d3c8341547921d727c41cb57c3be80a7ca566618682dbf849c74fffdd90952
|
File details
Details for the file rheaps-0.16.0-cp311-cp311-win_amd64.whl.
File metadata
- Download URL: rheaps-0.16.0-cp311-cp311-win_amd64.whl
- Upload date:
- Size: 529.5 kB
- Tags: CPython 3.11, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
24553efcb54ccc6af381a5b42e8e591bd42ce83d75f76ae05b50c1a9788fe55f
|
|
| MD5 |
c2dfdc8fa18678ee59ebb591d71a4378
|
|
| BLAKE2b-256 |
ad8f3e0b27aa4d48fe1d63bbd0daff7562cf8d55eb5a9730235c4e0ffda1e0be
|
File details
Details for the file rheaps-0.16.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: rheaps-0.16.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 624.9 kB
- Tags: CPython 3.11, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
43576e3281454712a3f285320897bbe9659c283805cb92e3220f3595b2a0388a
|
|
| MD5 |
10689c7f9629bbab062391b0a21a605d
|
|
| BLAKE2b-256 |
17c8e20f24bde7a7c043d95b825a0d6b39aa2db3ecc3befc3b2aa03332ad23d3
|
File details
Details for the file rheaps-0.16.0-cp311-cp311-macosx_11_0_arm64.whl.
File metadata
- Download URL: rheaps-0.16.0-cp311-cp311-macosx_11_0_arm64.whl
- Upload date:
- Size: 575.9 kB
- Tags: CPython 3.11, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1a38f64013c61ecf0e5b02fee78d8ec74504326fb85436906fc8d6f1ebea36bf
|
|
| MD5 |
0457775269f83c50d6bd8652d4f02303
|
|
| BLAKE2b-256 |
8b2278036aad37728e2d3d13b64f6924d17fec28398f6f4fa769f3989de7110e
|
File details
Details for the file rheaps-0.16.0-cp310-cp310-win_amd64.whl.
File metadata
- Download URL: rheaps-0.16.0-cp310-cp310-win_amd64.whl
- Upload date:
- Size: 516.0 kB
- Tags: CPython 3.10, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
62c63b40dced38a4df610c09fbc85c8952567e7bae03e78108b0a50dac1ddaf4
|
|
| MD5 |
b0e4ee1b39c60b869d9aad50baf85499
|
|
| BLAKE2b-256 |
7880c5e105de6535f99bd0e492afd4409e9c715e08ed175412b6d3925cd92ba6
|
File details
Details for the file rheaps-0.16.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: rheaps-0.16.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 613.7 kB
- Tags: CPython 3.10, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
59820091f2208c28d6f78f14f861f72d2af51c748e278c31b4f64697d9da173c
|
|
| MD5 |
c86d897fa8ab0487a10b357e3d5eabad
|
|
| BLAKE2b-256 |
806e0082f8ea58b22ef3511def59f65d280e6e647fd660184caa3e26f1a3ebb7
|
File details
Details for the file rheaps-0.16.0-cp310-cp310-macosx_11_0_arm64.whl.
File metadata
- Download URL: rheaps-0.16.0-cp310-cp310-macosx_11_0_arm64.whl
- Upload date:
- Size: 575.5 kB
- Tags: CPython 3.10, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ef0bce806712bf150fd8d74172a716f21dac978d1b1091a0cb3ec6ee6cee26fa
|
|
| MD5 |
e07b73cf1aa3dd514f5984928aee59ff
|
|
| BLAKE2b-256 |
4f87aa5f0ad682b83781a6e778f5f228b70916ec3d46de3e9393feba1f10dd9b
|