Skip to main content

Compact, read-only nested dictionary backed by a DAWG-style radix trie

Project description

compact-tree

Tests License: MIT

Compact, read-only nested dictionary backed by a DAWG-style radix trie.

CompactTree stores a nested Python dict using a path-compressed radix trie with DAWG-style key/value deduplication, enabling low-memory random access and efficient serialization.

Features

  • Memory-efficient: DAWG-style deduplication via two MarisaTrie instances (one for keys, one for values)
  • Flat variant: CompactTreeFlat stores all leaf paths as flat tuple[str, …] → val_id mappings — no intermediate nodes, get_path() only, ~38% faster than CompactTree.get_path() for full-path lookups
  • Fast lookups: Plain list-indexing over parallel arrays — no rank/select overhead
  • C-accelerated lookups: Optional _marisa_ext C extension provides TrieIndex and TreeIndex for ~5–10× faster uncached queries
  • Multi-level traversal: get_path(*keys) descends multiple levels in a single C call, eliminating intermediate _Node allocations
  • Shared trie: shared_trie=True uses a single MarisaTrie for both keys and values, saving memory when the vocabularies overlap
  • High-performance builds: 7.3s for a 6.2M-leaf, 173K-key tree (v2.0.0)
  • Fast serialization: 14/s at 173K keys, 77 MiB files
  • Serializable: Save and load from disk with efficient binary format
  • Gzip compression: Optional gzip compression for smaller files on disk
  • Pickle support: Fully serializable via Python's pickle module
  • Read-only: Optimized for lookup-heavy workloads
  • Storage-agnostic: Works with local files and remote storage via fsspec
  • Dict-like interface: Supports [], in, len(), iteration, repr(), and str()

Installation

pip install savov-compact-tree

Or install from source:

git clone https://github.com/andrey-savov/compact-tree.git
cd compact-tree
pip install -e .

Quick Start

from compact_tree import CompactTree

# Build from a nested dict
tree = CompactTree.from_dict({
    "a": {
        "x": "1",
        "y": "2"
    },
    "b": "3"
})

# Access like a normal dict
print(tree["a"]["x"])   # "1"
print(tree["b"])        # "3"
print("a" in tree)      # True
print(len(tree))        # 2
print(list(tree))       # ["a", "b"]

# String representations
print(str(tree))        # {'a': {'x': '1', 'y': '2'}, 'b': '3'}
print(repr(tree))       # CompactTree.from_dict({'a': {'x': '1', ...}, 'b': '3'})

# Serialize to file
tree.serialize("tree.ctree")

# Load from file
loaded_tree = CompactTree("tree.ctree")

# Serialize with gzip compression
tree.serialize("tree.ctree.gz", compression="gzip")
loaded_gz = CompactTree("tree.ctree.gz", compression="gzip")

# Shared trie: keys and values share one MarisaTrie (saves memory when vocabularies overlap)
tree_shared = CompactTree.from_dict({"a": "b", "b": "a"}, shared_trie=True)

# Pickle support
import pickle
data = pickle.dumps(tree)
tree2 = pickle.loads(data)

# Convert back to plain dict
plain_dict = loaded_tree.to_dict()

# Multi-level lookup in a single C call (when C extension is compiled)
result = tree.get_path("a", "x")   # equivalent to tree["a"]["x"] but faster

CompactTreeFlat — flat full-path lookup

When you always know the full path depth at lookup time and don't need intermediate navigation, use CompactTreeFlat for ~38% faster get_path() calls:

from compact_tree_flat import CompactTreeFlat

d = {"a": {"x": "1"}, "b": {"x": "2", "y": "3"}}
tree = CompactTreeFlat.from_dict(d)

tree.get_path("a", "x")          # "1" — single dict lookup + restore_key, no trie traversal
tree.get_path("b", "y")          # "3"
("b", "x") in tree               # True — __contains__ takes a tuple
len(tree)                         # 3  (total leaf paths)
tree.to_dict()                   # {"a": {"x": "1"}, "b": {"x": "2", "y": "3"}}

# Serialize / deserialize (CTFlt v1 binary format)
tree.serialize("tree.ctflat")
tree2 = CompactTreeFlat("tree.ctflat")

tree.serialize("tree.ctflat.gz", compression="gzip")
tree3 = CompactTreeFlat("tree.ctflat.gz", compression="gzip")

import pickle
tree4 = pickle.loads(pickle.dumps(tree))

How It Works

MarisaTrie

MarisaTrie is a compact word-to-index mapping backed by a path-compressed radix trie with subtree word counts for minimal perfect hashing (MPH). CompactTree uses two MarisaTrie instances — one for keys and one for values — to provide DAWG-style deduplication.

  • Path compression: single-child edges are merged for compactness
  • Dense indexing: every unique word gets an index in [0, N)
  • Reverse lookup: recover the original word from its index
  • Bulk enumeration: to_dict() returns {word: index} for all words in O(N); the first call after construction returns a pre-built mapping (zero trie traversals) and frees it immediately
  • Per-instance LRU cache: functools.lru_cache on index() lookups, automatically sized to the vocabulary; cache size preserved through serialization

At query time, navigation uses plain Python parallel lists (_node_labels, _node_children, _node_counts, _node_terminal) — no rank/select overhead.

DAWG-Style Deduplication

  • Keys are collected, sorted, and deduplicated via a MarisaTrie
  • Values (leaves) are similarly deduplicated via a second MarisaTrie
  • Edge labels store integer IDs rather than raw strings
  • The same key or value appearing at multiple levels is stored only once

Architecture

CompactTree
  |
  +-- _child_start : array.array('I')  child start offsets (CSR), one per node
  +-- _child_count : array.array('I')  child counts (CSR), one per node
  +-- elbl         : array.array('I')  edge labels (uint32 key ids, one per node)
  +-- vcol         : array.array('I')  value column (uint32: value id or 0xFFFFFFFF for internal nodes)
  +-- _key_trie    : MarisaTrie        key vocabulary (word <-> dense index)
  +-- _val_trie    : MarisaTrie        value vocabulary (word <-> dense index)
  +-- _shared_trie : bool              True when a single MarisaTrie covers keys and values
  +-- _c_tree      : TreeIndex | None  optional C-level traversal helper (None if extension not built)
CompactTreeFlat
  |
  +-- _key_dict      : dict[tuple[str, ...], int]  full path → val_id
  +-- _val_trie      : MarisaTrie                  value vocabulary
  +-- _val_vocab_size: int                          lru_cache size hint

MarisaTrie additionally exposes:

  • _c_index (TrieIndex) — C-level lookup helper, set by _build_c_index() when the extension is available.
  • _first_char_maps / _prefix_counts / _node_label_lens — navigation tables built by _build_navigation_tables() for O(1) child dispatch and MPH index accumulation.

Each non-root node v (0-indexed) occupies a slot in both elbl (its edge label / key id) and vcol (its value id, or the sentinel 0xFFFFFFFF for internal nodes).

Child navigation uses CSR (Compressed Sparse Row) arrays: _child_start[v] is the start offset and _child_count[v] is the count of children of node v.

Binary Format

CompactTree — format v6

Magic   : 5 bytes    "CTree"
Version : 8 bytes    uint64 LE  (always 6)
Header  : 8 × 8 bytes  shared_flag, keys_trie_len, val_trie_len, child_count_len,
                         vcol_len, elbl_len, key_vocab_size, val_vocab_size
Payload : keys_trie_bytes | val_trie_bytes (empty when shared)
          | child_count_bytes | vcol_bytes | elbl_bytes

When shared_flag=1 (built with shared_trie=True), val_trie_len=0 and no value-trie blob is written; on load both _key_trie and _val_trie point to the same deserialized MarisaTrie.

Files written in v5 or earlier are not supported.

CompactTreeFlat — format CTFlt v1

Magic   : 5 bytes    "CTFlt"
Version : 8 bytes    uint64 LE  (always 1)
Header  : 4 × 8 bytes  n_paths, val_trie_len, paths_buf_len, val_vocab_size
Payload : val_trie_bytes | paths_buf

Dependencies

  • bitarray — Bit-packed boolean arrays (used for terminal flags in MarisaTrie serialization)
  • fsspec — Filesystem abstraction for local and remote storage

Testing

pytest test_compact_tree.py test_marisa_trie.py

Benchmarks

Run performance benchmarks with pytest-benchmark:

pytest test_compact_tree.py::TestLoadPerformance --benchmark-only -v

See BENCHMARK_RESULTS.md for detailed results and OPTIMIZATIONS.md for optimization history.

Performance

Benchmark: 3-level nested dict, shape {L0=9, L1=4, L2=173,000}, 6.2M leaf entries. Windows 11, Intel Core Ultra 9 285H, Python 3.14.3, 10 s timed loops.

Target Lookups / s µs / lookup vs dict
dict[k0][k1][k2] 228,998 4.4 1.0× (baseline)
CompactTreeFlat.get_path() 194,220 5.1 0.85×
CompactTree.get_path() (C ext) 141,224 7.1 0.62×
CompactTree[k0][k1][k2] (no cache) 124,384 8.0 0.54×

See PERFORMANCE.md for full comparisons including PyArrow.

CompactTreeFlat.get_path() is ~38% faster than CompactTree.get_path() because a full-path lookup reduces to one Python dict.__getitem__ + one restore_key call.

Contributing

Contributions are welcome! Please see CONTRIBUTING.md for details.

License

This project is licensed under the MIT License - see the LICENSE file for details.

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

savov_compact_tree-3.0.0.tar.gz (47.8 kB view details)

Uploaded Source

Built Distributions

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

savov_compact_tree-3.0.0-pp310-pypy310_pp73-win_amd64.whl (35.8 kB view details)

Uploaded PyPyWindows x86-64

savov_compact_tree-3.0.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (35.1 kB view details)

Uploaded PyPymanylinux: glibc 2.17+ x86-64

savov_compact_tree-3.0.0-pp310-pypy310_pp73-macosx_11_0_arm64.whl (32.8 kB view details)

Uploaded PyPymacOS 11.0+ ARM64

savov_compact_tree-3.0.0-pp310-pypy310_pp73-macosx_10_15_x86_64.whl (32.4 kB view details)

Uploaded PyPymacOS 10.15+ x86-64

savov_compact_tree-3.0.0-pp39-pypy39_pp73-win_amd64.whl (35.8 kB view details)

Uploaded PyPyWindows x86-64

savov_compact_tree-3.0.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (35.1 kB view details)

Uploaded PyPymanylinux: glibc 2.17+ x86-64

savov_compact_tree-3.0.0-pp39-pypy39_pp73-macosx_11_0_arm64.whl (32.8 kB view details)

Uploaded PyPymacOS 11.0+ ARM64

savov_compact_tree-3.0.0-pp39-pypy39_pp73-macosx_10_15_x86_64.whl (32.4 kB view details)

Uploaded PyPymacOS 10.15+ x86-64

savov_compact_tree-3.0.0-cp313-cp313-win_amd64.whl (35.5 kB view details)

Uploaded CPython 3.13Windows x86-64

savov_compact_tree-3.0.0-cp313-cp313-musllinux_1_2_x86_64.whl (53.0 kB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ x86-64

savov_compact_tree-3.0.0-cp313-cp313-musllinux_1_2_aarch64.whl (53.5 kB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ ARM64

savov_compact_tree-3.0.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (53.0 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64

savov_compact_tree-3.0.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (53.5 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ ARM64

savov_compact_tree-3.0.0-cp313-cp313-macosx_11_0_arm64.whl (33.0 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

savov_compact_tree-3.0.0-cp313-cp313-macosx_10_13_x86_64.whl (32.7 kB view details)

Uploaded CPython 3.13macOS 10.13+ x86-64

savov_compact_tree-3.0.0-cp312-cp312-win_amd64.whl (35.5 kB view details)

Uploaded CPython 3.12Windows x86-64

savov_compact_tree-3.0.0-cp312-cp312-musllinux_1_2_x86_64.whl (53.0 kB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ x86-64

savov_compact_tree-3.0.0-cp312-cp312-musllinux_1_2_aarch64.whl (53.4 kB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ ARM64

savov_compact_tree-3.0.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (53.0 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

savov_compact_tree-3.0.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (53.6 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ ARM64

savov_compact_tree-3.0.0-cp312-cp312-macosx_11_0_arm64.whl (33.0 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

savov_compact_tree-3.0.0-cp312-cp312-macosx_10_13_x86_64.whl (32.7 kB view details)

Uploaded CPython 3.12macOS 10.13+ x86-64

savov_compact_tree-3.0.0-cp311-cp311-win_amd64.whl (35.4 kB view details)

Uploaded CPython 3.11Windows x86-64

savov_compact_tree-3.0.0-cp311-cp311-musllinux_1_2_x86_64.whl (52.3 kB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ x86-64

savov_compact_tree-3.0.0-cp311-cp311-musllinux_1_2_aarch64.whl (52.9 kB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ ARM64

savov_compact_tree-3.0.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (52.4 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

savov_compact_tree-3.0.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (53.1 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ ARM64

savov_compact_tree-3.0.0-cp311-cp311-macosx_11_0_arm64.whl (33.0 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

savov_compact_tree-3.0.0-cp311-cp311-macosx_10_9_x86_64.whl (32.4 kB view details)

Uploaded CPython 3.11macOS 10.9+ x86-64

savov_compact_tree-3.0.0-cp310-cp310-win_amd64.whl (35.6 kB view details)

Uploaded CPython 3.10Windows x86-64

savov_compact_tree-3.0.0-cp310-cp310-musllinux_1_2_x86_64.whl (54.4 kB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ x86-64

savov_compact_tree-3.0.0-cp310-cp310-musllinux_1_2_aarch64.whl (54.8 kB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ ARM64

savov_compact_tree-3.0.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (54.4 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

savov_compact_tree-3.0.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (55.1 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ ARM64

savov_compact_tree-3.0.0-cp310-cp310-macosx_11_0_arm64.whl (33.3 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

savov_compact_tree-3.0.0-cp310-cp310-macosx_10_9_x86_64.whl (32.8 kB view details)

Uploaded CPython 3.10macOS 10.9+ x86-64

savov_compact_tree-3.0.0-cp39-cp39-win_amd64.whl (35.6 kB view details)

Uploaded CPython 3.9Windows x86-64

savov_compact_tree-3.0.0-cp39-cp39-musllinux_1_2_x86_64.whl (54.1 kB view details)

Uploaded CPython 3.9musllinux: musl 1.2+ x86-64

savov_compact_tree-3.0.0-cp39-cp39-musllinux_1_2_aarch64.whl (54.5 kB view details)

Uploaded CPython 3.9musllinux: musl 1.2+ ARM64

savov_compact_tree-3.0.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (54.1 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ x86-64

savov_compact_tree-3.0.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (54.7 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ ARM64

savov_compact_tree-3.0.0-cp39-cp39-macosx_11_0_arm64.whl (33.3 kB view details)

Uploaded CPython 3.9macOS 11.0+ ARM64

savov_compact_tree-3.0.0-cp39-cp39-macosx_10_9_x86_64.whl (32.8 kB view details)

Uploaded CPython 3.9macOS 10.9+ x86-64

File details

Details for the file savov_compact_tree-3.0.0.tar.gz.

File metadata

  • Download URL: savov_compact_tree-3.0.0.tar.gz
  • Upload date:
  • Size: 47.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for savov_compact_tree-3.0.0.tar.gz
Algorithm Hash digest
SHA256 bff23c42a1f3b3c0de9e47960c312bee7d7791ac7dcbcaa1e1c898fbef2dff9c
MD5 307363a7221c8b7406deba8240fff979
BLAKE2b-256 75b1bb0405f9a39448a1f00f152996c9e8c951d896a6c61794610191d7005026

See more details on using hashes here.

Provenance

The following attestation bundles were made for savov_compact_tree-3.0.0.tar.gz:

Publisher: publish.yml on andrey-savov/compact-tree

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

File details

Details for the file savov_compact_tree-3.0.0-pp310-pypy310_pp73-win_amd64.whl.

File metadata

File hashes

Hashes for savov_compact_tree-3.0.0-pp310-pypy310_pp73-win_amd64.whl
Algorithm Hash digest
SHA256 c984714851555fbae4ab85a3e04652178f898580ecf5bd653fcab1a532f86198
MD5 3a283211561780ed10d138a884991945
BLAKE2b-256 c77121319242eb3aa7721a7a07b8f54209770555fda4550dbcfbddcfdc1a4599

See more details on using hashes here.

Provenance

The following attestation bundles were made for savov_compact_tree-3.0.0-pp310-pypy310_pp73-win_amd64.whl:

Publisher: publish.yml on andrey-savov/compact-tree

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

File details

Details for the file savov_compact_tree-3.0.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for savov_compact_tree-3.0.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 73a99b562450a5e4b1062793a14af272503f8eb5deb16884fc0166fda8cabc6a
MD5 f57dfeb15ee8075671b3ecffb521a029
BLAKE2b-256 539a6674f180c3c86288afb5538d0dd9812e420949c2064bf74035f27dccf04c

See more details on using hashes here.

Provenance

The following attestation bundles were made for savov_compact_tree-3.0.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: publish.yml on andrey-savov/compact-tree

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

File details

Details for the file savov_compact_tree-3.0.0-pp310-pypy310_pp73-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for savov_compact_tree-3.0.0-pp310-pypy310_pp73-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 84919ee2594239951cfadd66a7fadb81b8c9f5be82428cb64dd1fe60a5756052
MD5 01ba25662cdb46320932613fd44cef24
BLAKE2b-256 63b39345c6247969ffaf894bf2a242f9bb578b7f17730d88a2d82ef0ec683af9

See more details on using hashes here.

Provenance

The following attestation bundles were made for savov_compact_tree-3.0.0-pp310-pypy310_pp73-macosx_11_0_arm64.whl:

Publisher: publish.yml on andrey-savov/compact-tree

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

File details

Details for the file savov_compact_tree-3.0.0-pp310-pypy310_pp73-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for savov_compact_tree-3.0.0-pp310-pypy310_pp73-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 66b7ce20b7e11f742c262816c3115de011998981b69d833f33bb78437f89cb07
MD5 51c5302fae65c3fbbb9cabc867e557f5
BLAKE2b-256 0b9873bf4af84be1c5d857b9936c196758fb67a85ed21197831fe5cf1e9b4cc7

See more details on using hashes here.

Provenance

The following attestation bundles were made for savov_compact_tree-3.0.0-pp310-pypy310_pp73-macosx_10_15_x86_64.whl:

Publisher: publish.yml on andrey-savov/compact-tree

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

File details

Details for the file savov_compact_tree-3.0.0-pp39-pypy39_pp73-win_amd64.whl.

File metadata

File hashes

Hashes for savov_compact_tree-3.0.0-pp39-pypy39_pp73-win_amd64.whl
Algorithm Hash digest
SHA256 ae1896d24c4252b9506c12e2673533f8661130c4923da8e633283275eafe5a99
MD5 84a2f59af6fe5357255c694c524f3396
BLAKE2b-256 c8416e45d5daac31cdee9386e8f2ba424214d6870402ec6f75af50bc1a2c7307

See more details on using hashes here.

Provenance

The following attestation bundles were made for savov_compact_tree-3.0.0-pp39-pypy39_pp73-win_amd64.whl:

Publisher: publish.yml on andrey-savov/compact-tree

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

File details

Details for the file savov_compact_tree-3.0.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for savov_compact_tree-3.0.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 6e39e6b7f8983eb36107c30c2e35be49a3e6075f7896c43b090486ae0ac9b9b5
MD5 807597e4790d5fd1581d1879a4b4525d
BLAKE2b-256 59d1b3a280dfde0995c578660c6e958d7c9fb7f4d586946239a493ea8a2ea6d9

See more details on using hashes here.

Provenance

The following attestation bundles were made for savov_compact_tree-3.0.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: publish.yml on andrey-savov/compact-tree

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

File details

Details for the file savov_compact_tree-3.0.0-pp39-pypy39_pp73-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for savov_compact_tree-3.0.0-pp39-pypy39_pp73-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 e6c08629ccbbda5bcaf90af0afa7774692fb04716cf3218f27f75c8b61af07df
MD5 c2d1621e59930a315498592ac8166e4f
BLAKE2b-256 91baba5cac17e077e45c99e975537d75e97eaf660dcb51bb4b6d1b3161dd362b

See more details on using hashes here.

Provenance

The following attestation bundles were made for savov_compact_tree-3.0.0-pp39-pypy39_pp73-macosx_11_0_arm64.whl:

Publisher: publish.yml on andrey-savov/compact-tree

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

File details

Details for the file savov_compact_tree-3.0.0-pp39-pypy39_pp73-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for savov_compact_tree-3.0.0-pp39-pypy39_pp73-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 fb37ee3cb37f1202fe5bb1cba3cfe32be29d30a5eb12ba7274ff56e6b893cf8d
MD5 0577721b82906443aef4af63609655fe
BLAKE2b-256 ae235962bb550e859d2b1084be9221ad5b342c918f98cf34ecf6aaef8191f88b

See more details on using hashes here.

Provenance

The following attestation bundles were made for savov_compact_tree-3.0.0-pp39-pypy39_pp73-macosx_10_15_x86_64.whl:

Publisher: publish.yml on andrey-savov/compact-tree

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

File details

Details for the file savov_compact_tree-3.0.0-cp313-cp313-win_amd64.whl.

File metadata

File hashes

Hashes for savov_compact_tree-3.0.0-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 24c6adf9fd02bfddad57cfcb6e5e14482c743724141f852bd4d330a0539cb642
MD5 e4fd1637365b729cdd54a418243e7d92
BLAKE2b-256 e8460bf0243f1c99e9099d142d83c1c3172548eeea372917a22bc2c4b0b496cf

See more details on using hashes here.

Provenance

The following attestation bundles were made for savov_compact_tree-3.0.0-cp313-cp313-win_amd64.whl:

Publisher: publish.yml on andrey-savov/compact-tree

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

File details

Details for the file savov_compact_tree-3.0.0-cp313-cp313-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for savov_compact_tree-3.0.0-cp313-cp313-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 3323e1817c3f1a93d48c82b4048dad91d68c069d83f40ed104087e1d2809f0fe
MD5 c8660f8108009234af7892732fa469da
BLAKE2b-256 5f22e39b9fa76d68a510e7d5e35ea8d70fc8ad42ed6bd99d6ae4288948919990

See more details on using hashes here.

Provenance

The following attestation bundles were made for savov_compact_tree-3.0.0-cp313-cp313-musllinux_1_2_x86_64.whl:

Publisher: publish.yml on andrey-savov/compact-tree

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

File details

Details for the file savov_compact_tree-3.0.0-cp313-cp313-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for savov_compact_tree-3.0.0-cp313-cp313-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 ab198f811d31b296b161a23399dd6267cf3b0225bb4ddc6591d9e6a6a53cb7f6
MD5 af2f73f0b825e08f22bdf158c9937a61
BLAKE2b-256 bffd749a04139ea804039e2378973d18571002ed013fc878e874dc4ce376e38c

See more details on using hashes here.

Provenance

The following attestation bundles were made for savov_compact_tree-3.0.0-cp313-cp313-musllinux_1_2_aarch64.whl:

Publisher: publish.yml on andrey-savov/compact-tree

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

File details

Details for the file savov_compact_tree-3.0.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for savov_compact_tree-3.0.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 50adc72124bc19e8cd6ff4d526bdf9ec0223edfdfd98876690e355df2c65d167
MD5 fbd58205284dca3be613aa92c7f0b490
BLAKE2b-256 1b8e01264e26b4e5d143b017169545c166337acaefe0e8367b3af6363aa27785

See more details on using hashes here.

Provenance

The following attestation bundles were made for savov_compact_tree-3.0.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: publish.yml on andrey-savov/compact-tree

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

File details

Details for the file savov_compact_tree-3.0.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for savov_compact_tree-3.0.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 c93c0f0bd4200b12b99348a31414d2f300fb004b257f1a136121d4a8454062f3
MD5 a52ee5094604285ff95b0d5ba396cdc8
BLAKE2b-256 d4c08064c1f23dfe4eb91b37465e6832fd0780fcc0c7daed96a93ecfb345f2ae

See more details on using hashes here.

Provenance

The following attestation bundles were made for savov_compact_tree-3.0.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: publish.yml on andrey-savov/compact-tree

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

File details

Details for the file savov_compact_tree-3.0.0-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for savov_compact_tree-3.0.0-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 9457cd8cfaf51a7099bce6f25ae217a0cf956890c83bc4663608598e8d29d519
MD5 b6b0d1c5adae0a0d1acfcfd42754fa5d
BLAKE2b-256 3235c889b0c9c4a5c161de3a6dcf909eafe52f5c83cdd7063daa794509a8e572

See more details on using hashes here.

Provenance

The following attestation bundles were made for savov_compact_tree-3.0.0-cp313-cp313-macosx_11_0_arm64.whl:

Publisher: publish.yml on andrey-savov/compact-tree

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

File details

Details for the file savov_compact_tree-3.0.0-cp313-cp313-macosx_10_13_x86_64.whl.

File metadata

File hashes

Hashes for savov_compact_tree-3.0.0-cp313-cp313-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 3749ff11695d703250af6505cfffe8d7039144821061a8e4c157e9cdea7b5887
MD5 497860bcaf181e76797d6f9c653ce660
BLAKE2b-256 c130cd139b3a3cea42f91cb1268e0928ef6694bb7441618b6425dd57801ed454

See more details on using hashes here.

Provenance

The following attestation bundles were made for savov_compact_tree-3.0.0-cp313-cp313-macosx_10_13_x86_64.whl:

Publisher: publish.yml on andrey-savov/compact-tree

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

File details

Details for the file savov_compact_tree-3.0.0-cp312-cp312-win_amd64.whl.

File metadata

File hashes

Hashes for savov_compact_tree-3.0.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 842957384d35b0f48fee6c32dd9208fc8ff23ca63d8470148159d5a26218cb5a
MD5 6c021c526c807ea720cce2367a48f288
BLAKE2b-256 13138d0c4dacb1423da4c61f6cba1cb2fb803cb18b31cc19afdc56f6bfd53bad

See more details on using hashes here.

Provenance

The following attestation bundles were made for savov_compact_tree-3.0.0-cp312-cp312-win_amd64.whl:

Publisher: publish.yml on andrey-savov/compact-tree

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

File details

Details for the file savov_compact_tree-3.0.0-cp312-cp312-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for savov_compact_tree-3.0.0-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 ff4f5dd7791b137d784865645cad3d102f6c4a2f5d661c2334fa59bff26bb065
MD5 822a2abedebbcc84f853bd033f959d53
BLAKE2b-256 53db152bf69233ba7a72887b95942deee63d149f8d0471dfe962391a82665501

See more details on using hashes here.

Provenance

The following attestation bundles were made for savov_compact_tree-3.0.0-cp312-cp312-musllinux_1_2_x86_64.whl:

Publisher: publish.yml on andrey-savov/compact-tree

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

File details

Details for the file savov_compact_tree-3.0.0-cp312-cp312-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for savov_compact_tree-3.0.0-cp312-cp312-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 b3b32e91e50a4c5fb8f8fc92a281bbb4d3606d0ead3badf9cb8816a137d306ba
MD5 1f4a5d1fdac38bd3093228af0537abed
BLAKE2b-256 fd3aa9c941a8fc87a26cf72e3640fc74dbf8ecc90bff955d6efadc2e44bb1bb7

See more details on using hashes here.

Provenance

The following attestation bundles were made for savov_compact_tree-3.0.0-cp312-cp312-musllinux_1_2_aarch64.whl:

Publisher: publish.yml on andrey-savov/compact-tree

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

File details

Details for the file savov_compact_tree-3.0.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for savov_compact_tree-3.0.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 0884e1582077f99c515d8be2bd09511511df7009dbd069828ce792b2dc14de76
MD5 6755a61dff6e765ac8d095d005648d41
BLAKE2b-256 22904cc033cc3e50f2638b03ce57b700136d6a2576001a90ea24316aa8d68b97

See more details on using hashes here.

Provenance

The following attestation bundles were made for savov_compact_tree-3.0.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: publish.yml on andrey-savov/compact-tree

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

File details

Details for the file savov_compact_tree-3.0.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for savov_compact_tree-3.0.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 187b4022a0e2ff740109a2bda26a0943ae5010484f10541bc07319b578b0a4b6
MD5 ec48fa6d32761560398a97e3dd706591
BLAKE2b-256 b70f2787bacb2614364a96206dbf72d6bf69901fe83adb3ec6d78a4f07d08e70

See more details on using hashes here.

Provenance

The following attestation bundles were made for savov_compact_tree-3.0.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: publish.yml on andrey-savov/compact-tree

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

File details

Details for the file savov_compact_tree-3.0.0-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for savov_compact_tree-3.0.0-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 f6a370db3bbe852a27a511ca61c6e7b4dde77aade7e0540c449d19815d6d6eea
MD5 9dcdfa62d67713bf5cdb7bcad9e12421
BLAKE2b-256 35de4312cf00cb4066bba0d1fa643a9ef49ef18478bba1e22794726d99bf8b6d

See more details on using hashes here.

Provenance

The following attestation bundles were made for savov_compact_tree-3.0.0-cp312-cp312-macosx_11_0_arm64.whl:

Publisher: publish.yml on andrey-savov/compact-tree

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

File details

Details for the file savov_compact_tree-3.0.0-cp312-cp312-macosx_10_13_x86_64.whl.

File metadata

File hashes

Hashes for savov_compact_tree-3.0.0-cp312-cp312-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 0e67091f1b956a0b2c308da305cfa45d510f176e7ecf21a6d874314697c49443
MD5 0072814adef3963452cc7fb79d8e5317
BLAKE2b-256 aebc1d70d1bfdd9fb98e746df9d66da4212a01b8817099be43415ae70db806ff

See more details on using hashes here.

Provenance

The following attestation bundles were made for savov_compact_tree-3.0.0-cp312-cp312-macosx_10_13_x86_64.whl:

Publisher: publish.yml on andrey-savov/compact-tree

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

File details

Details for the file savov_compact_tree-3.0.0-cp311-cp311-win_amd64.whl.

File metadata

File hashes

Hashes for savov_compact_tree-3.0.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 f001091972629c54dfb144c9e1b13c2090fe88c63590911e26cbf0f64af00527
MD5 fe4af46f34db5224c5c172793e7637c0
BLAKE2b-256 6c15a7aea8e8005c8ff86bc5d239a324c418434dd016f5d291676a02d45c6a68

See more details on using hashes here.

Provenance

The following attestation bundles were made for savov_compact_tree-3.0.0-cp311-cp311-win_amd64.whl:

Publisher: publish.yml on andrey-savov/compact-tree

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

File details

Details for the file savov_compact_tree-3.0.0-cp311-cp311-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for savov_compact_tree-3.0.0-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 fe70843876908ba3765a4c0c838207a2459139248b05785262214647922bec00
MD5 8966c3ddc269cb2748694664cf9ca00d
BLAKE2b-256 fc6203c0b37bc80b05202256be5bf005dab04734bd5c3593e6fdf8120a28164a

See more details on using hashes here.

Provenance

The following attestation bundles were made for savov_compact_tree-3.0.0-cp311-cp311-musllinux_1_2_x86_64.whl:

Publisher: publish.yml on andrey-savov/compact-tree

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

File details

Details for the file savov_compact_tree-3.0.0-cp311-cp311-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for savov_compact_tree-3.0.0-cp311-cp311-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 55a675a3cc1937c59184001ddba9258500afb55336706a0bdd6930ce5da6d961
MD5 497e3f5b574121cbc56a78a440392399
BLAKE2b-256 adb8fe9f19b9fa54160a77e41a6fe5aed02d606eac1628e22600485bee961109

See more details on using hashes here.

Provenance

The following attestation bundles were made for savov_compact_tree-3.0.0-cp311-cp311-musllinux_1_2_aarch64.whl:

Publisher: publish.yml on andrey-savov/compact-tree

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

File details

Details for the file savov_compact_tree-3.0.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for savov_compact_tree-3.0.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 4dc797574071009cf99e5c594630c853cc1a13610c8689f47925358da05f7b58
MD5 cc5f791c3bdc51d349fd1bcec9d8302e
BLAKE2b-256 aeb80c07e1df13f84cb466c5fbfcff06f3253702c03ee02b9b919ad4cb7471bf

See more details on using hashes here.

Provenance

The following attestation bundles were made for savov_compact_tree-3.0.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: publish.yml on andrey-savov/compact-tree

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

File details

Details for the file savov_compact_tree-3.0.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for savov_compact_tree-3.0.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 e85d96be2f7158cccd00a8ca5323fb0ebe86b9fd1460a7dffab96afba918fd0d
MD5 d9f5b463919e20b09434a69749d17a7c
BLAKE2b-256 221260bf90eb855ae94245a2438412af2c3a45c819baa95f92dfb0a168884bf9

See more details on using hashes here.

Provenance

The following attestation bundles were made for savov_compact_tree-3.0.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: publish.yml on andrey-savov/compact-tree

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

File details

Details for the file savov_compact_tree-3.0.0-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for savov_compact_tree-3.0.0-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 7407b8a7a7856e169c71503d0e19494bae5d0dccb6a50abe5a47be508f396c7e
MD5 51e54e109831363789e5c29e0b037878
BLAKE2b-256 51c1da7f75edf9a306cf7ca47e7d3fb3c7cc51a576a70d8843d71601916602d8

See more details on using hashes here.

Provenance

The following attestation bundles were made for savov_compact_tree-3.0.0-cp311-cp311-macosx_11_0_arm64.whl:

Publisher: publish.yml on andrey-savov/compact-tree

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

File details

Details for the file savov_compact_tree-3.0.0-cp311-cp311-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for savov_compact_tree-3.0.0-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 0cee3e1d4e8ff1fb7b77fba6ecf58fba58910b6d8a2841c0a94214dc1bf2896c
MD5 68b89cb05154aaad1d8d2fa84ef081d3
BLAKE2b-256 28acdc9f164a5f0b7cf292cc438170853c3f8258eefc4b862008b2d6f6c8586c

See more details on using hashes here.

Provenance

The following attestation bundles were made for savov_compact_tree-3.0.0-cp311-cp311-macosx_10_9_x86_64.whl:

Publisher: publish.yml on andrey-savov/compact-tree

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

File details

Details for the file savov_compact_tree-3.0.0-cp310-cp310-win_amd64.whl.

File metadata

File hashes

Hashes for savov_compact_tree-3.0.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 d6365fbe0b5ee3c9794dcf981b11d277fffd224aa4f89ab119c07b142cbbb369
MD5 02ced6ec3516b9a62982bfb8b277f37f
BLAKE2b-256 5910d265fef59ffd73a4cb908db169281ae68ed894768107b67d327a662a8001

See more details on using hashes here.

Provenance

The following attestation bundles were made for savov_compact_tree-3.0.0-cp310-cp310-win_amd64.whl:

Publisher: publish.yml on andrey-savov/compact-tree

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

File details

Details for the file savov_compact_tree-3.0.0-cp310-cp310-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for savov_compact_tree-3.0.0-cp310-cp310-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 6db888fd9f785ecf910f724627eed43f69b7f8ab54895b0c15cf691c2373274b
MD5 1b2a8450cda01861ec6565c3404da57a
BLAKE2b-256 776ff129d76d092b55aa8302b56743591c04976cf20db2d9f1c5a134400ab3ee

See more details on using hashes here.

Provenance

The following attestation bundles were made for savov_compact_tree-3.0.0-cp310-cp310-musllinux_1_2_x86_64.whl:

Publisher: publish.yml on andrey-savov/compact-tree

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

File details

Details for the file savov_compact_tree-3.0.0-cp310-cp310-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for savov_compact_tree-3.0.0-cp310-cp310-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 ae233fe07cfe41f53ca0490a384f49d18d56beb75f1bbf58c87806ad3ddf59bc
MD5 d7860ffd73fb9eb983c8d9a84d569639
BLAKE2b-256 0e0da7681bf70ba00426d922edbe78ad5d756b0fb7a218be4aa095fb7c974445

See more details on using hashes here.

Provenance

The following attestation bundles were made for savov_compact_tree-3.0.0-cp310-cp310-musllinux_1_2_aarch64.whl:

Publisher: publish.yml on andrey-savov/compact-tree

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

File details

Details for the file savov_compact_tree-3.0.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for savov_compact_tree-3.0.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 5ebd02aca5e03cf4009691050c44429671f13657eda3de03c392261bac049546
MD5 a28e61ef726027a15c684cb06f21dde4
BLAKE2b-256 668b4449e4df2e8e96406f55419c55b004fed2495b47fda8a94eb6fe5d8830f3

See more details on using hashes here.

Provenance

The following attestation bundles were made for savov_compact_tree-3.0.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: publish.yml on andrey-savov/compact-tree

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

File details

Details for the file savov_compact_tree-3.0.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for savov_compact_tree-3.0.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 1cccdf5327f163dee7f5a1927b6bd0b0c28341370188967f278266af7d7517b1
MD5 cdfc43b0f49839c33220b7d881ab5bf7
BLAKE2b-256 328af84c63ed3b58e4c22e956a2c98f4c1ec700134f1eb8c4df2757d806f5a36

See more details on using hashes here.

Provenance

The following attestation bundles were made for savov_compact_tree-3.0.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: publish.yml on andrey-savov/compact-tree

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

File details

Details for the file savov_compact_tree-3.0.0-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for savov_compact_tree-3.0.0-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 2459e59ab4354f0947ef71fa781955482fa039e588ae27375fd0e654b85d15a8
MD5 b55c95b7c89a916afc7c065f50dacdb9
BLAKE2b-256 074090a08df03dbbec79d028d81b55a08c9fd4d0bb0b5b221040e8240581813d

See more details on using hashes here.

Provenance

The following attestation bundles were made for savov_compact_tree-3.0.0-cp310-cp310-macosx_11_0_arm64.whl:

Publisher: publish.yml on andrey-savov/compact-tree

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

File details

Details for the file savov_compact_tree-3.0.0-cp310-cp310-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for savov_compact_tree-3.0.0-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 bd038bcbc893570497e23c44f0307a4f51c83f3712545868559bd280c32613e9
MD5 0ea25c9a3eb688f57a33d415c14a7c1a
BLAKE2b-256 4c06d25c3f823b9be7c6cb1c854a7717aed52473d51f31117f405e39ee8b9bee

See more details on using hashes here.

Provenance

The following attestation bundles were made for savov_compact_tree-3.0.0-cp310-cp310-macosx_10_9_x86_64.whl:

Publisher: publish.yml on andrey-savov/compact-tree

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

File details

Details for the file savov_compact_tree-3.0.0-cp39-cp39-win_amd64.whl.

File metadata

File hashes

Hashes for savov_compact_tree-3.0.0-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 cebc302425e349a6718a9a77db9cbdcc4cfba5a4a0b2a324a3ecf740cfdb9c10
MD5 3e9b5593f348c9da7305f363631d305e
BLAKE2b-256 77e0dc23c6ba5d12c37fcb8b5dfcb65006864774f996767ded140763483170ab

See more details on using hashes here.

Provenance

The following attestation bundles were made for savov_compact_tree-3.0.0-cp39-cp39-win_amd64.whl:

Publisher: publish.yml on andrey-savov/compact-tree

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

File details

Details for the file savov_compact_tree-3.0.0-cp39-cp39-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for savov_compact_tree-3.0.0-cp39-cp39-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 444ea68e6f5c31e60e6dada121d1ea2b047e9eb64090daca5c6bbbc09321baa6
MD5 cf80320a6c9b1a76fbbf5756fc21d083
BLAKE2b-256 bec3c4176f45f17d0a9a45060675b76d3feba04cdf03bd5a840cba0462698326

See more details on using hashes here.

Provenance

The following attestation bundles were made for savov_compact_tree-3.0.0-cp39-cp39-musllinux_1_2_x86_64.whl:

Publisher: publish.yml on andrey-savov/compact-tree

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

File details

Details for the file savov_compact_tree-3.0.0-cp39-cp39-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for savov_compact_tree-3.0.0-cp39-cp39-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 c61cbfb08e849352f2df13e6bdf21e4fef6141474f457dc32bfdd228d02bc195
MD5 174ce52e2b74db096d7844515d887dd8
BLAKE2b-256 a8bec17e8a1bf0b1e859be5198e85cab2428c0c5086525d05c33344ca0c1fcc7

See more details on using hashes here.

Provenance

The following attestation bundles were made for savov_compact_tree-3.0.0-cp39-cp39-musllinux_1_2_aarch64.whl:

Publisher: publish.yml on andrey-savov/compact-tree

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

File details

Details for the file savov_compact_tree-3.0.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for savov_compact_tree-3.0.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 3bd90520ac4916211988050886a607ce512ce89c97b1a580c3fa652236eb33f4
MD5 d051ab0e397de62190d19b2c12e49447
BLAKE2b-256 7d79061ce748ca3387c1988d67c5d466b26e9f97bc4e9e7fbd5a967ce0f0375f

See more details on using hashes here.

Provenance

The following attestation bundles were made for savov_compact_tree-3.0.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: publish.yml on andrey-savov/compact-tree

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

File details

Details for the file savov_compact_tree-3.0.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for savov_compact_tree-3.0.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 70e129080d0204e4747dd5812ab995904f487d6584cc22091d036038c6fd1d2b
MD5 6be328566435d20192f3ca7f7590c368
BLAKE2b-256 43675d7bcc0ea72b6561a480974141bebd0a3f49b655589f43fdbb5ad3e76181

See more details on using hashes here.

Provenance

The following attestation bundles were made for savov_compact_tree-3.0.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: publish.yml on andrey-savov/compact-tree

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

File details

Details for the file savov_compact_tree-3.0.0-cp39-cp39-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for savov_compact_tree-3.0.0-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 4794defe019729c69f2cb0f2e1870b13ca42512adb0ade172395bef51c2c4447
MD5 a41a25c8aae74594187760ba3c138f9b
BLAKE2b-256 974574ca9c8c773dbde69a664da3642c4991ebc9ea3c45356da65cc945d0b03b

See more details on using hashes here.

Provenance

The following attestation bundles were made for savov_compact_tree-3.0.0-cp39-cp39-macosx_11_0_arm64.whl:

Publisher: publish.yml on andrey-savov/compact-tree

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

File details

Details for the file savov_compact_tree-3.0.0-cp39-cp39-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for savov_compact_tree-3.0.0-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 5000d53fa64b4c6045b0642cc260e8bfcb843bdc1c535bbb5a91f9c90e912ac1
MD5 275780cec2ac354e384a69bfa97c1be9
BLAKE2b-256 66a88130c6f19d3bd7aabad167dfd36f3914fd71c5b81d7e034fd67e49d0d0ea

See more details on using hashes here.

Provenance

The following attestation bundles were made for savov_compact_tree-3.0.0-cp39-cp39-macosx_10_9_x86_64.whl:

Publisher: publish.yml on andrey-savov/compact-tree

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