Skip to main content

Crash-safe embedded key-value store — encryption (XChaCha20-Poly1305), TTL, reverse iterators, iterator seek, put_if_absent, column families, ACID transactions, vector search (HNSW)

Project description

SNKV Python Bindings

Build PyPI License

Idiomatic Python 3.8+ bindings for SNKV — a lightweight, ACID-compliant embedded key-value store built directly on SQLite's B-Tree engine.

If you find it useful, a ⭐ on GitHub goes a long way!


Features

  • Dict-style APIdb["key"] = value, val = db["key"], del db["key"], "key" in db
  • Context managerswith KVStore(...) as db and with db.create_column_family(...) as cf for guaranteed cleanup
  • Prefix iterators — efficient namespace scans with db.prefix_iterator(b"user:")
  • Reverse iterators — walk keys in descending order with db.reverse_iterator() and db.reverse_prefix_iterator(b"user:")
  • WAL checkpoint control — PASSIVE / FULL / RESTART / TRUNCATE modes via db.checkpoint()
  • Auto-checkpoint — set wal_size_limit=N to checkpoint automatically after every N WAL frames
  • Typed exceptionsNotFoundError, BusyError, LockedError, ReadOnlyError, CorruptError all subclass snkv.Error
  • No Python dependencies — pure CPython C extension; only requires a C compiler and python3-dev
  • Native TTL — per-key expiry with put(ttl=seconds), dict-style db[key, ttl] = value, lazy expiry on get, and purge_expired()
  • Encryption — per-value XChaCha20-Poly1305 encryption with Argon2id key derivation; transparent to all existing APIs
  • Seek iterators — jump to any key in O(log N) with it.seek(key), chainable and works on prefix/reverse iterators
  • Conditional insert — atomic put_if_absent(key, value, ttl=None) returns True if inserted; safe for distributed locks and dedup
  • Bulk cleardb.clear() / cf.clear() truncates all keys in O(pages) without dropping the store
  • Key countdb.count() / cf.count() returns entry count in O(pages); CF counts are fully isolated
  • Extended statsdb.stats() exposes 12 counters including bytes_read, bytes_written, wal_commits, ttl_expired, db_pages; reset with db.stats_reset()
  • Vector search — integrated HNSW approximate nearest-neighbour index via snkv[vector]; sidecar persistence, quantization (f32/f16/i8), metadata filtering, exact rerank, TTL on vectors, and encryption support
  • 471 tests — full pytest suite covering ACID, WAL, crash recovery, concurrency, column families, TTL, encryption, and vector search

Installation

From PyPI (recommended)

Pre-built binary wheels are available for Linux, macOS, and Windows — no compiler needed.

Windows / macOS:

pip install snkv

Linux (Debian/Ubuntu):

python3 -m venv .venv
source .venv/bin/activate
pip install snkv

Linux system Python is "externally managed" (PEP 668) and blocks system-wide pip installs. Use a virtual environment.

Build from Source

# System dependencies
sudo apt-get install -y build-essential python3-dev python3-pip

# Python build dependencies
pip3 install setuptools wheel pytest

# Build
cd python
python3 setup.py build_ext --inplace

macOS

# Compiler (skip if already installed)
xcode-select --install

# Python build dependencies
pip3 install setuptools wheel pytest

# Build
cd python
python3 setup.py build_ext --inplace

Windows — Native Python (recommended)

  1. Install Python 3.8+ — check "Add Python to PATH"
  2. Install Visual Studio Build Tools — select "Desktop development with C++"
  3. Open "x64 Native Tools Command Prompt for VS 2022" from the Start Menu (required for 64-bit Python; "Developer PowerShell for VS" defaults to 32-bit and will fail)
:: Python build dependencies
pip install setuptools wheel pytest

:: Build
cd python
python setup.py build_ext --inplace

Windows — MSYS2 MinGW64 shell

Open the MSYS2 MinGW64 shell (not plain MSYS2, not cmd.exe):

# System + Python dependencies (one-time)
pacman -S --needed mingw-w64-x86_64-python \
                   mingw-w64-x86_64-python-pip \
                   mingw-w64-x86_64-python-setuptools \
                   mingw-w64-x86_64-python-pytest

# Build
cd python
python3 setup.py build_ext --inplace

On all platforms, setup.py automatically locates snkv.h — no manual header step needed. On Linux/macOS it regenerates it via make snkv.h; on Windows it falls back to the pre-built snkv.h included in the repo.


Quick Start

from snkv import KVStore

with KVStore("mydb.db") as db:
    db["hello"] = "world"
    print(db["hello"].decode())   # world

API Reference

Opening a store

from snkv import KVStore, JOURNAL_WAL, JOURNAL_DELETE, SYNC_NORMAL, SYNC_OFF, SYNC_FULL

with KVStore(
    "mydb.db",
    journal_mode=JOURNAL_WAL,   # JOURNAL_WAL (default) or JOURNAL_DELETE
    sync_level=SYNC_NORMAL,     # SYNC_NORMAL (default), SYNC_OFF, SYNC_FULL
    cache_size=2000,            # pages (~8 MB default)
    page_size=4096,             # bytes; new databases only
    busy_timeout=5000,          # ms to retry on SQLITE_BUSY (default 0)
    read_only=False,            # open read-only
    wal_size_limit=100,         # auto-checkpoint every 100 WAL frames (0 = off)
) as db:
    ...

CRUD

# Write
db["key"] = b"value"          # bytes or str keys/values are both accepted
db["key"] = "value"           # str is UTF-8 encoded automatically

# Read
val = db["key"]               # returns bytes; raises NotFoundError if missing
val = db.get("key")           # returns bytes or None
val = db.get("key", b"def")   # with default

# Check existence
exists = "key" in db
exists = db.exists(b"key")

# Delete
del db["key"]
db.delete(b"key")             # same as del; no error if key absent

# Upsert
db.put(b"key", b"value")      # identical to db["key"] = value

Transactions

db.begin(write=True)
db["a"] = "1"
db["b"] = "2"
db.commit()          # persist

db.begin(write=True)
db["c"] = "3"
db.rollback()        # discard — "c" is never written

Auto-commit is the default: each db["key"] = value outside an explicit transaction is committed immediately.

Column Families

Logical namespaces within a single database file. Always close cf before db.

# Create (first use)
with db.create_column_family("users") as cf:
    cf[b"alice"] = b"admin"
    cf[b"bob"]   = b"viewer"

# Open (subsequent uses)
with db.open_column_family("users") as cf:
    print(cf[b"alice"])       # b"admin"

# List all column families
names = db.list_column_families()   # ["users", ...]

# Drop
db.drop_column_family("users")

Iterators

# Full scan — yields (key, value) tuples in key order
for key, value in db.iterator():
    print(key, value)

# Prefix scan
for key, value in db.prefix_iterator(b"user:"):
    print(key, value)

# Manual control
it = db.iterator()
it.first()
while not it.eof:
    print(it.key, it.value)
    it.next()
it.close()

# As a context manager
with db.iterator() as it:
    for key, value in it:
        ...

Reverse Iterators

Walk keys in descending order — no full scan, no sort, pure B-tree traversal.

# Full reverse scan
for key, value in db.reverse_iterator():
    print(key, value)

# Reverse prefix scan — visits only matching keys, largest first
for key, value in db.reverse_prefix_iterator(b"user:"):
    print(key, value)

# Manual control
it = db.reverse_iterator()
it.last()
while not it.eof:
    print(it.key, it.value)
    it.prev()
it.close()

# As a context manager
with db.reverse_prefix_iterator(b"log:") as it:
    for key, value in it:
        ...

Column families support reverse iterators identically via cf.reverse_iterator() and cf.reverse_prefix_iterator().

WAL Checkpoint

from snkv import CHECKPOINT_PASSIVE, CHECKPOINT_FULL, CHECKPOINT_RESTART, CHECKPOINT_TRUNCATE

# Returns (nLog, nCkpt) — WAL frames total / frames written to DB
nlog, nckpt = db.checkpoint(CHECKPOINT_PASSIVE)    # copy frames without blocking
nlog, nckpt = db.checkpoint(CHECKPOINT_FULL)       # wait for writers, flush all
nlog, nckpt = db.checkpoint(CHECKPOINT_RESTART)    # like FULL, reset write position
nlog, nckpt = db.checkpoint(CHECKPOINT_TRUNCATE)   # like RESTART, truncate WAL file

Must be called outside an active write transaction. Use wal_size_limit to auto-checkpoint instead.

Iterator Seek

Jump to any position in O(log N) without scanning from the start.

with db.iterator() as it:
    it.seek(b"user:bob")        # forward: position at first key >= target
    while not it.eof:
        print(it.key, it.value)
        it.next()

with db.iterator(reverse=True) as it:
    it.last()
    it.seek(b"user:bob")        # reverse: position at last key <= target
    while not it.eof:
        print(it.key, it.value)
        it.prev()

# Works on prefix iterators too — boundary still enforced
with db.iterator(prefix=b"user:") as it:
    it.seek(b"user:carol")      # skip straight to "user:carol"
    while not it.eof:
        print(it.key)
        it.next()

# seek() returns self for chaining
key = db.iterator().seek(b"target").key

Conditional Insert

Atomically insert a key only when it is absent — safe for distributed locks and deduplication.

# Returns True if inserted, False if the key already existed.
inserted = db.put_if_absent(b"lock", b"owner:alice")

# With TTL — the key auto-releases after the given number of seconds.
inserted = db.put_if_absent(b"session:42", b"token-xyz", ttl=30)

# Column families support the same method.
with db.create_column_family("dedup") as cf:
    if cf.put_if_absent(b"msg:001", b"hello"):
        process(b"msg:001")     # only the first caller reaches here

Bulk Clear

Truncate all entries from a store or column family in O(pages) — no iterating, no individual deletes.

db.clear()      # remove every key from the default CF

with db.create_column_family("cache") as cf:
    cf.clear()  # only this CF is affected; other CFs are untouched

TTL index entries are cleared atomically alongside data entries. Close all iterators before calling clear().

Key Count

Count entries without scanning individual keys.

n = db.count()                           # total entries in the default CF

with db.open_column_family("users") as cf:
    n = cf.count()                       # only this CF; TTL index not counted

# count() includes expired-but-not-yet-purged keys.
# Call purge_expired() first for an accurate live count.
db.purge_expired()
n = db.count()

Maintenance

db.sync()                 # flush OS write buffers (fsync)
db.vacuum(100)            # reclaim up to 100 unused pages incrementally
db.integrity_check()      # raises CorruptError if database is corrupt

# Extended stats — 12 counters
stats = db.stats()
# Keys: puts, gets, deletes, iterations, errors,
#       bytes_read, bytes_written, wal_commits, checkpoints,
#       ttl_expired, ttl_purged, db_pages

# Reset all cumulative counters (db_pages is always live)
db.stats_reset()

TTL — Native Key Expiry

Per-key TTL with automatic lazy expiry on read.

# Put with TTL (seconds, float precision)
db.put(b"session", b"tok123", ttl=60)   # expires in 60 s
db[b"token", 30] = b"bearer-xyz"        # dict-style shorthand

# Get — expired keys are silently evicted and raise NotFoundError
val = db.get(b"session")                # returns bytes or None if expired

# Check remaining lifetime
from snkv import NotFoundError
try:
    remaining = db.ttl(b"session")      # seconds remaining (float)
except NotFoundError:
    remaining = None                    # key expired or never set

# Purge all expired keys from disk (returns count removed)
n = db.purge_expired()

# Column families support TTL identically
with db.create_column_family("cache") as cf:
    cf.put(b"item", b"data", ttl=10)
    cf[b"item2", 5] = b"data2"
    n = cf.purge_expired()

Encryption

Transparent per-value encryption. All existing APIs work without modification.

from snkv import KVStore, AuthError

# Create / open encrypted store
with KVStore.open_encrypted("mydb.db", b"hunter2") as db:
    db[b"secret"] = b"classified"
    print(db.is_encrypted())      # True
    print(db[b"secret"])          # b"classified" — transparent decrypt

# Wrong password raises AuthError
try:
    KVStore.open_encrypted("mydb.db", b"wrong")
except AuthError:
    print("bad password")

# Change password in-place (re-encrypts all values atomically)
with KVStore.open_encrypted("mydb.db", b"hunter2") as db:
    db.reencrypt(b"new-strong-pass")

# Remove encryption permanently
with KVStore.open_encrypted("mydb.db", b"new-strong-pass") as db:
    db.remove_encryption()
with KVStore("mydb.db") as db:    # plain open works now
    print(db[b"secret"])
Method Description
KVStore.open_encrypted(path, password, **kwargs) Class method — open or create encrypted store
db.is_encrypted() Returns True if store is encrypted
db.reencrypt(new_password) Change password; re-encrypts all values atomically
db.remove_encryption() Decrypt in-place; store becomes plain

Cryptographic details: XChaCha20-Poly1305 per value · Argon2id KDF (64 MB, 3 iterations) · 40-byte overhead per value (nonce + MAC) · key wiped from memory on close.


Vector Search

Integrated HNSW approximate nearest-neighbour index backed by usearch. All vectors and KV data live in the same .db file — no separate index file, no external service.

Installation

pip install snkv[vector]

Quick Start

from snkv.vector import VectorStore
import numpy as np

with VectorStore("store.db", dim=128, space="cosine") as vs:
    vs.vector_put(b"doc:1", b"hello world", np.random.rand(128).astype("f4"))
    results = vs.search(np.random.rand(128).astype("f4"), top_k=5)
    for r in results:
        print(r.key, r.distance, r.value)

Parameters

Parameter Default Description
path Path to .db file. None for in-memory.
dim Vector dimension. Fixed for the lifetime of the store.
space "l2" Distance metric: "l2" (squared L2), "cosine", or "ip" (inner product).
connectivity 16 HNSW M parameter.
expansion_add 128 HNSW expansion during index build.
expansion_search None HNSW expansion at query time. None restores the stored value (default 64).
dtype "f32" In-memory index precision: "f32", "f16" (half RAM), or "i8" (quarter RAM). On-disk storage is always float32.
password None Open/create an encrypted store. Sidecar is disabled for encrypted stores.

Quantization

dtype controls the in-memory HNSW graph precision only — on-disk storage in _snkv_vec_ is always float32.

dtype RAM per vector (dim=768) Notes
"f32" 3072 bytes Full precision (default)
"f16" 1536 bytes Half RAM, negligible recall loss
"i8" 768 bytes Quarter RAM, small recall cost

For 1 M vectors at dim=768: f32 ≈ 3 GB → f16 ≈ 1.5 GB → i8 ≈ 768 MB.

# Half RAM for the in-memory index; on-disk vectors still float32
with VectorStore("store.db", dim=768, space="cosine", dtype="f16") as vs:
    vs.vector_put(b"doc:1", b"hello", np.random.rand(768).astype("f4"))

Index Persistence (Sidecar)

For unencrypted file-backed stores, the HNSW index is saved to {path}.usearch on close() and reloaded on the next open — skipping the O(n×d) CF rebuild. A companion {path}.usearch.nid stamp file detects any write that occurred after the last clean close (including crash scenarios). Stale or corrupt sidecars are silently discarded and the index is rebuilt from the column families.

Encrypted stores and in-memory stores always rebuild from column families.

Key Methods

# Write
vs.vector_put(b"key", b"value", vec, ttl=None, metadata=None)
vs.vector_put_batch([(b"key", b"value", vec), ...], ttl=None)

# Search
results = vs.search(query_vec, top_k=10)                           # ANN
results = vs.search(query_vec, top_k=10, filter={"topic": "ml"})  # metadata filter
results = vs.search(query_vec, top_k=10, rerank=True)             # exact rerank
results = vs.search(query_vec, top_k=10, max_distance=0.5)        # distance cutoff
pairs   = vs.search_keys(query_vec, top_k=10)                     # keys + distances only

# SearchResult fields: key, value, distance, metadata
# NOTE: result.metadata is None unless filter= is passed to search().
# To access metadata without filtering, call get_metadata(key) after the search:
for r in results:
    meta = vs.get_metadata(r.key)   # dict or None — always works

# Read
vec  = vs.vector_get(b"key")          # np.ndarray(dim,) float32
val  = vs.get(b"key")                 # value bytes from KV store
meta = vs.get_metadata(b"key")        # dict or None

# Delete / maintenance
vs.delete(b"key")
n = vs.vector_purge_expired()         # remove expired vectors from index + CFs

# Stats
stats = vs.vector_stats()
# Keys: dim, space, dtype, connectivity, expansion_add, expansion_search,
#       count, capacity, fill_ratio, vec_cf_count, has_metadata, sidecar_enabled

# Drop index (KV data preserved)
vs.drop_vector_index()

Encrypted Vector Store

from snkv import AuthError

with VectorStore("store.db", dim=128, password=b"secret") as vs:
    vs.vector_put(b"doc:1", b"classified", np.random.rand(128).astype("f4"))

try:
    VectorStore("store.db", dim=128, password=b"wrong")
except AuthError:
    print("bad password")

Error Hierarchy

snkv.Error (base)
├── snkv.NotFoundError       (also KeyError — raised by db["missing"])
├── snkv.BusyError           (SQLITE_BUSY — another writer holds the lock)
├── snkv.LockedError         (SQLITE_LOCKED)
├── snkv.ReadOnlyError       (write attempted on read-only store)
├── snkv.CorruptError        (database file is corrupt)
└── snkv.AuthError           (wrong password or not an encrypted store)

snkv.vector.VectorIndexError  (index dropped or empty; not a subclass of snkv.Error)
import snkv

try:
    val = db["missing_key"]
except snkv.NotFoundError:
    val = b"default"

try:
    db["key"] = b"value"
except snkv.BusyError:
    # retry after a delay
    ...

Running Tests

Linux / macOS

cd python
python3 -m pytest tests/ -v

Windows — Native Python (x64 Native Tools Command Prompt for VS 2022)

cd python
set PYTHONPATH=.
python -m pytest tests\ -v

Windows — MSYS2 MinGW64 shell

cd python
PYTHONPATH=. python3 -m pytest tests/ -v

All 471 tests should pass.


Running Examples

Linux / macOS

cd python
PYTHONPATH=. python3 examples/basic.py           # CRUD, binary data, in-memory store
PYTHONPATH=. python3 examples/transactions.py    # begin/commit/rollback
PYTHONPATH=. python3 examples/column_families.py # logical namespaces
PYTHONPATH=. python3 examples/iterators.py       # ordered scan, prefix scan
PYTHONPATH=. python3 examples/config.py          # journal mode, sync, cache, WAL limit
PYTHONPATH=. python3 examples/checkpoint.py      # manual + auto WAL checkpoint
PYTHONPATH=. python3 examples/session_store.py   # real-world session store pattern
PYTHONPATH=. python3 examples/ttl.py             # TTL expiry, rate limiter demo
PYTHONPATH=. python3 examples/encryption.py  # encrypted store, wrong-password, reencrypt
PYTHONPATH=. python3 examples/iterator_reverse.py # reverse iterators, descending scans
PYTHONPATH=. python3 examples/new_apis.py        # seek, put_if_absent, clear, count, stats
PYTHONPATH=. python3 examples/multiprocess.py    # 5 concurrent processes, busy_timeout
PYTHONPATH=. python3 examples/vector.py          # vector search, quantization, sidecar, TTL, encryption

Windows — Native Python (x64 Native Tools Command Prompt for VS 2022)

cd python
set PYTHONPATH=.
python examples\basic.py
python examples\transactions.py
python examples\column_families.py
python examples\iterators.py
python examples\config.py
python examples\checkpoint.py
python examples\session_store.py
python examples\ttl.py
python examples\encryption.py
python examples\iterator_reverse.py
python examples\new_apis.py
python examples\multiprocess.py
python examples\all_apis.py
python examples\vector.py

Windows — MSYS2 MinGW64 shell

cd python
PYTHONPATH=. python3 examples/basic.py
PYTHONPATH=. python3 examples/transactions.py
# ... same pattern for all examples

Benchmarks

Benchmarks run on Windows 11 comparing SNKV against diskcache 5.6.3.

Run it yourself:

pip install diskcache
cd python
PYTHONIOENCODING=utf-8 python examples/benchmark_diskcache.py

Core Operations — N = 10,000 ops, 64-byte values

Operation SNKV diskcache Speedup
Bulk write (batched tx) 24.4 ms 649.6 ms 26.6x
Individual write 189.2 ms 2.02 s 10.7x
Read — hit (100%) 19.5 ms 178.7 ms 9.2x
Read — miss (100%) 18.1 ms 170.3 ms 9.4x
Delete (batched tx) 25.1 ms 250.8 ms 10.0x
Full scan (key + value) 7.3 ms 31.8 ms 4.4x
Write with TTL 68.7 ms 636.5 ms 9.3x

Prefix Scan — 10,000 keys, 1,000 matching ns3:

SNKV uses a native prefix_iterator that visits only matching keys. diskcache has no native prefix support and scans all keys in Python.

Operation SNKV diskcache Speedup
Forward prefix scan 3.0 ms 94.7 ms 31.7x
Reverse prefix scan 2.8 ms 93.7 ms 33.4x

Mixed Workload — 80% read / 20% write, 10,000 ops

Operation SNKV diskcache Speedup
80% read / 20% write 57.5 ms 575.0 ms 10.0x

Value Size Scaling — N = 5,000 ops

Size Op SNKV diskcache Speedup
64 B write 11.5 ms 369.7 ms 32.2x
64 B read 10.7 ms 95.3 ms 8.9x
1 KB write 294.3 ms 400.6 ms 1.4x
1 KB read 288.1 ms 103.2 ms 0.4x
10 KB write 769.3 ms 914.3 ms 1.2x
10 KB read 746.8 ms 156.4 ms 0.2x
100 KB write 5.98 s 7.03 s 1.2x
100 KB read 5.77 s 1.33 s 0.2x

For large values (≥ 1 KB) diskcache's read path becomes competitive because pickle overhead shrinks relative to I/O cost. SNKV retains its write advantage at every size.

Large Dataset — N = 100,000 keys, 64-byte values

Operation SNKV diskcache Speedup
Bulk write (batched tx) 217.7 ms 5.05 s 23.2x
Read (10,000 sampled) 35.3 ms 186.1 ms 5.3x
Full scan (key + value) 50.1 ms 199.1 ms 4.0x

Durability — Write → Close → Reopen → Verify, N = 10,000 keys

Library Test Write Reopen + Read Verified
SNKV Plain write 31.7 ms 22.0 ms 10,000 / 10,000 ✓
diskcache Plain write 741.6 ms 175.2 ms 10,000 / 10,000 ✓
SNKV Write with TTL 129.6 ms 30.1 ms 10,000 / 10,000 ✓
diskcache Write with TTL 717.3 ms 177.5 ms 10,000 / 10,000 ✓

Write speedup: 23.4x (plain) · 5.5x (TTL). Both stores verified all keys correctly after a cold reopen.

Overall: SNKV faster in 20 / 23 tests — average speedup 11.1x


Thread Safety

Each thread must use its own KVStore instance. WAL mode serialises concurrent writers at the SQLite level — a BusyError is raised (or retried up to busy_timeout ms) when two writers collide. Multiple readers always make progress concurrently in WAL mode.

import threading
from snkv import KVStore, JOURNAL_WAL

def worker(db_path, worker_id):
    # Each thread opens its own connection
    with KVStore(db_path, journal_mode=JOURNAL_WAL, busy_timeout=5000) as db:
        db[f"key_{worker_id}".encode()] = b"value"

threads = [threading.Thread(target=worker, args=("mydb.db", i)) for i in range(4)]
for t in threads: t.start()
for t in threads: t.join()

Third-Party Licenses

The snkv Python package embeds the following third-party libraries compiled into its native extension:

Library Version License Notes
SQLite 3.x (amalgamation subset) Public Domain B-tree, pager, WAL, OS layer
Monocypher 4.x CC0-1.0 (Public Domain) XChaCha20-Poly1305 + Argon2id
usearch ≥ 2.9 Apache 2.0 HNSW vector index (optional — pip install snkv[vector])

SQLite and Monocypher are statically linked into the extension module — no separate installation required.

SQLite and Monocypher are public domain — no attribution is legally required, but credit is given here in the spirit of good practice. usearch is an optional runtime dependency and is not bundled.


License

Apache License 2.0 © 2025 Hash Anu

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

snkv-0.7.3.tar.gz (87.0 kB view details)

Uploaded Source

Built Distributions

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

snkv-0.7.3-cp313-cp313-win_amd64.whl (204.7 kB view details)

Uploaded CPython 3.13Windows x86-64

snkv-0.7.3-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (852.5 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64

snkv-0.7.3-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (830.4 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ ARM64

snkv-0.7.3-cp313-cp313-macosx_11_0_arm64.whl (263.7 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

snkv-0.7.3-cp313-cp313-macosx_10_13_x86_64.whl (273.6 kB view details)

Uploaded CPython 3.13macOS 10.13+ x86-64

snkv-0.7.3-cp312-cp312-win_amd64.whl (204.7 kB view details)

Uploaded CPython 3.12Windows x86-64

snkv-0.7.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (852.5 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

snkv-0.7.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (830.3 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ ARM64

snkv-0.7.3-cp312-cp312-macosx_11_0_arm64.whl (263.8 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

snkv-0.7.3-cp312-cp312-macosx_10_13_x86_64.whl (273.6 kB view details)

Uploaded CPython 3.12macOS 10.13+ x86-64

snkv-0.7.3-cp311-cp311-win_amd64.whl (204.6 kB view details)

Uploaded CPython 3.11Windows x86-64

snkv-0.7.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (852.0 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

snkv-0.7.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (830.2 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ ARM64

snkv-0.7.3-cp311-cp311-macosx_11_0_arm64.whl (263.4 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

snkv-0.7.3-cp311-cp311-macosx_10_9_x86_64.whl (272.6 kB view details)

Uploaded CPython 3.11macOS 10.9+ x86-64

snkv-0.7.3-cp310-cp310-win_amd64.whl (204.6 kB view details)

Uploaded CPython 3.10Windows x86-64

snkv-0.7.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (850.8 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

snkv-0.7.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (829.1 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ ARM64

snkv-0.7.3-cp310-cp310-macosx_11_0_arm64.whl (263.4 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

snkv-0.7.3-cp310-cp310-macosx_10_9_x86_64.whl (272.6 kB view details)

Uploaded CPython 3.10macOS 10.9+ x86-64

snkv-0.7.3-cp39-cp39-win_amd64.whl (204.7 kB view details)

Uploaded CPython 3.9Windows x86-64

snkv-0.7.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (850.2 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ x86-64

snkv-0.7.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (828.4 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ ARM64

snkv-0.7.3-cp39-cp39-macosx_11_0_arm64.whl (263.4 kB view details)

Uploaded CPython 3.9macOS 11.0+ ARM64

snkv-0.7.3-cp39-cp39-macosx_10_9_x86_64.whl (272.6 kB view details)

Uploaded CPython 3.9macOS 10.9+ x86-64

snkv-0.7.3-cp38-cp38-win_amd64.whl (204.7 kB view details)

Uploaded CPython 3.8Windows x86-64

snkv-0.7.3-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (851.1 kB view details)

Uploaded CPython 3.8manylinux: glibc 2.17+ x86-64

snkv-0.7.3-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (829.4 kB view details)

Uploaded CPython 3.8manylinux: glibc 2.17+ ARM64

snkv-0.7.3-cp38-cp38-macosx_11_0_arm64.whl (263.4 kB view details)

Uploaded CPython 3.8macOS 11.0+ ARM64

snkv-0.7.3-cp38-cp38-macosx_10_9_x86_64.whl (272.6 kB view details)

Uploaded CPython 3.8macOS 10.9+ x86-64

File details

Details for the file snkv-0.7.3.tar.gz.

File metadata

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

File hashes

Hashes for snkv-0.7.3.tar.gz
Algorithm Hash digest
SHA256 ef9a04224e6ee4aa0c4d10cfcb24fce181eb0cc1d17a1bb15398c91b17113519
MD5 8513da56fbfa8f6c9e247ce7500a90ad
BLAKE2b-256 e2a79ed8f94801dcc892663b724c01d60ad808e61af18500f4ae9e46e487a911

See more details on using hashes here.

Provenance

The following attestation bundles were made for snkv-0.7.3.tar.gz:

Publisher: publish.yml on hash-anu/snkv

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

File details

Details for the file snkv-0.7.3-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: snkv-0.7.3-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 204.7 kB
  • Tags: CPython 3.13, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for snkv-0.7.3-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 3962f61cf7b9f22c725e033eaf42411c17c5d7201147cbce731e3ac2a50632a8
MD5 6b8a06310dd950673484d7389fe313cf
BLAKE2b-256 2b6baf6386f07de00eac477486544c0c18a218e7841e8a2f92f8278432f26a68

See more details on using hashes here.

Provenance

The following attestation bundles were made for snkv-0.7.3-cp313-cp313-win_amd64.whl:

Publisher: publish.yml on hash-anu/snkv

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

File details

Details for the file snkv-0.7.3-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for snkv-0.7.3-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 3b89d6a9c73eba0b8d77195c3ec2594f6a79894e94e09b7f052b3cc7861d0bb2
MD5 07d1f04f3e511a5785cd341b87bafaa6
BLAKE2b-256 d3bea9b6f39bc9d310ce6d08eaab4a4b791c6d73bae6ec7a5da088570a6abcc4

See more details on using hashes here.

Provenance

The following attestation bundles were made for snkv-0.7.3-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: publish.yml on hash-anu/snkv

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

File details

Details for the file snkv-0.7.3-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for snkv-0.7.3-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 8d5c89a894495557abddaa2d5de5defa4495cee3f41dd25f549a8c0e7335f7e7
MD5 7f89f3cc7f2c99b4cb843c0357dc5213
BLAKE2b-256 4a2133d4a1f8e87c65b1eb172109350cfce5419ca576a2542e640a78582e15df

See more details on using hashes here.

Provenance

The following attestation bundles were made for snkv-0.7.3-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: publish.yml on hash-anu/snkv

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

File details

Details for the file snkv-0.7.3-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

  • Download URL: snkv-0.7.3-cp313-cp313-macosx_11_0_arm64.whl
  • Upload date:
  • Size: 263.7 kB
  • Tags: CPython 3.13, macOS 11.0+ ARM64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for snkv-0.7.3-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 b1a785cd5376f80f7fd4d5affaa70804ba22337092ddbcec56026f6dfaf45f3a
MD5 4bb06818b816ce8ca57fae3d529a1954
BLAKE2b-256 b4bec9bf4b5cef26744fbcca7185bb221272b859f551b6276c2518baa7b1adc9

See more details on using hashes here.

Provenance

The following attestation bundles were made for snkv-0.7.3-cp313-cp313-macosx_11_0_arm64.whl:

Publisher: publish.yml on hash-anu/snkv

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

File details

Details for the file snkv-0.7.3-cp313-cp313-macosx_10_13_x86_64.whl.

File metadata

File hashes

Hashes for snkv-0.7.3-cp313-cp313-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 9aefa634f7b75a49fc03dbfadbcc4072c559ece1a26b01e57c84ef250aeef1c2
MD5 369b5a411652dc5be0ae04b7ab9259fa
BLAKE2b-256 20d85a45ef5fa966def9fa24c02e7ac2b2d5fecfe8d65e6a1015304a715d90f9

See more details on using hashes here.

Provenance

The following attestation bundles were made for snkv-0.7.3-cp313-cp313-macosx_10_13_x86_64.whl:

Publisher: publish.yml on hash-anu/snkv

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

File details

Details for the file snkv-0.7.3-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: snkv-0.7.3-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 204.7 kB
  • Tags: CPython 3.12, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for snkv-0.7.3-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 0f419fe9e803c3f4c89156423cb6a11ee9a435b4bbb5e787ea9722eb77161db6
MD5 a163396ffb651d81ff36606d90546865
BLAKE2b-256 553260c7e27d4d4b667adab0305501f36689a51da8ef5a21426da17f42a38b8d

See more details on using hashes here.

Provenance

The following attestation bundles were made for snkv-0.7.3-cp312-cp312-win_amd64.whl:

Publisher: publish.yml on hash-anu/snkv

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

File details

Details for the file snkv-0.7.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for snkv-0.7.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 2eee543ab2f1a7f136103b956278bbac2f3585aefe520026fef428570c167f8f
MD5 e774fc66597cdcc2f4f489c60ef8cbc7
BLAKE2b-256 75503f1c9d4fc8a3c62c6ad007051681d33a608fdad48b9d14ffe0b7d6b8dd74

See more details on using hashes here.

Provenance

The following attestation bundles were made for snkv-0.7.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: publish.yml on hash-anu/snkv

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

File details

Details for the file snkv-0.7.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for snkv-0.7.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 ee28bef34f93ec30b9d1fba88cf9e0d6a4e8f39700f064f2f92966c2ea121bb3
MD5 7e01304e1b620b61709e5e082dd97c2f
BLAKE2b-256 c2c19e566523ebbd4452ce7c967b960a16d313b7ac557967d29fbf1194ecc978

See more details on using hashes here.

Provenance

The following attestation bundles were made for snkv-0.7.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: publish.yml on hash-anu/snkv

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

File details

Details for the file snkv-0.7.3-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

  • Download URL: snkv-0.7.3-cp312-cp312-macosx_11_0_arm64.whl
  • Upload date:
  • Size: 263.8 kB
  • Tags: CPython 3.12, macOS 11.0+ ARM64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for snkv-0.7.3-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 8cd76d640aba580d10d45c55bbb64de065b04610b863bdb57a36e8651e902b97
MD5 bd65cb9473644c77d7520d1f114a90b2
BLAKE2b-256 e512ae3cdd7c9cd62da9a13d201cd50614fec925f0b0c8cf862d5267dc4a49b9

See more details on using hashes here.

Provenance

The following attestation bundles were made for snkv-0.7.3-cp312-cp312-macosx_11_0_arm64.whl:

Publisher: publish.yml on hash-anu/snkv

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

File details

Details for the file snkv-0.7.3-cp312-cp312-macosx_10_13_x86_64.whl.

File metadata

File hashes

Hashes for snkv-0.7.3-cp312-cp312-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 b2f753c6277b7e33c2af20222e8ee5357fde0ee68e89152ee1ad5e1a50d1db5a
MD5 889fc7c2eb0babf8bfb60507a5f9385d
BLAKE2b-256 02747e7efb4e2005698ca2ae93fdf816b030dd18a6421cce0898b7050a25485a

See more details on using hashes here.

Provenance

The following attestation bundles were made for snkv-0.7.3-cp312-cp312-macosx_10_13_x86_64.whl:

Publisher: publish.yml on hash-anu/snkv

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

File details

Details for the file snkv-0.7.3-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: snkv-0.7.3-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 204.6 kB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for snkv-0.7.3-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 f9d458ab38649a5941b19070981495aa81e17c842dee462e3543cbecf8639a18
MD5 82371b14cae7d85d5b170db510b5411e
BLAKE2b-256 9a24251d4ae17bb4e1617bab37a09eb2e17068418d42d99a7d914de3e438d293

See more details on using hashes here.

Provenance

The following attestation bundles were made for snkv-0.7.3-cp311-cp311-win_amd64.whl:

Publisher: publish.yml on hash-anu/snkv

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

File details

Details for the file snkv-0.7.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for snkv-0.7.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 49efba1da18e0d783cefc33a9737726adf3b3caf40f7a427f8f1c7dc1a932323
MD5 3fc358a6bdaaf27c5525b2b8cee0c124
BLAKE2b-256 57e72c9827089d5bac9f9c961e0468ea6474ec658deba37da91b1a652b3e9049

See more details on using hashes here.

Provenance

The following attestation bundles were made for snkv-0.7.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: publish.yml on hash-anu/snkv

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

File details

Details for the file snkv-0.7.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for snkv-0.7.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 58602063927ad26626436700af77ecca9a6e072aaf19346c030d4d3a2ec75d35
MD5 f97ce160651dc5895694f17ebf8e6d9e
BLAKE2b-256 6b64766a475276a54a9dcd8b40c0f728e612a2e9d0cca6e56e06d0e982ddd318

See more details on using hashes here.

Provenance

The following attestation bundles were made for snkv-0.7.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: publish.yml on hash-anu/snkv

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

File details

Details for the file snkv-0.7.3-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

  • Download URL: snkv-0.7.3-cp311-cp311-macosx_11_0_arm64.whl
  • Upload date:
  • Size: 263.4 kB
  • Tags: CPython 3.11, macOS 11.0+ ARM64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for snkv-0.7.3-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 146accf0af0e99756471d29b9cd215b874f3ea50d6a6cec0c7923472aa5ed8c8
MD5 934a1cf8cb960fd0f5df327b847feb48
BLAKE2b-256 2cb5a085457e530df5c49c0fff4297bd3006a6006a0c0c9c374c3356eba43181

See more details on using hashes here.

Provenance

The following attestation bundles were made for snkv-0.7.3-cp311-cp311-macosx_11_0_arm64.whl:

Publisher: publish.yml on hash-anu/snkv

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

File details

Details for the file snkv-0.7.3-cp311-cp311-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for snkv-0.7.3-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 115841286699612fbf00ff606c55821677e0493f182edb8fef2ec3b9aa509f93
MD5 8a721705b822603e3ecd0656d6eac7ea
BLAKE2b-256 499bf53a62fa6ef09b02495cb26ee708db9202251e3cd7644e29102f8ec916a6

See more details on using hashes here.

Provenance

The following attestation bundles were made for snkv-0.7.3-cp311-cp311-macosx_10_9_x86_64.whl:

Publisher: publish.yml on hash-anu/snkv

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

File details

Details for the file snkv-0.7.3-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: snkv-0.7.3-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 204.6 kB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for snkv-0.7.3-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 1bf1ab4ef2f80995ce86bcd91b21ba27c3c929f7000d2d59a17e400eeb1a46c3
MD5 fdb733a0ca1877ca73b6acd9aa8e5a2e
BLAKE2b-256 ff6d8f21b13cf7fd25d09874b30da364f3be88fa1d89a7cc4d67c352e9349b27

See more details on using hashes here.

Provenance

The following attestation bundles were made for snkv-0.7.3-cp310-cp310-win_amd64.whl:

Publisher: publish.yml on hash-anu/snkv

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

File details

Details for the file snkv-0.7.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for snkv-0.7.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 269e32f888c82b41aefbdcefcab987026a309f1a8f4ea9ba9c18a9163984c072
MD5 410d3f713d80c8be8266c82d65506476
BLAKE2b-256 160028ec9299a375e591c2e171226bcfaa366b4be3de09707248454dc34d37c1

See more details on using hashes here.

Provenance

The following attestation bundles were made for snkv-0.7.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: publish.yml on hash-anu/snkv

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

File details

Details for the file snkv-0.7.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for snkv-0.7.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 77c8576cf5ebd306789654dcaac62b5a0cc776837e52b1ae6a716daf97130394
MD5 2e084d7a0d2b3f8155f2495ec400bdb5
BLAKE2b-256 98feab0a0659450cb03ad9261c099a364d700ae7b01dafeefe7b93b01ba89c9c

See more details on using hashes here.

Provenance

The following attestation bundles were made for snkv-0.7.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: publish.yml on hash-anu/snkv

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

File details

Details for the file snkv-0.7.3-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

  • Download URL: snkv-0.7.3-cp310-cp310-macosx_11_0_arm64.whl
  • Upload date:
  • Size: 263.4 kB
  • Tags: CPython 3.10, macOS 11.0+ ARM64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for snkv-0.7.3-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 af6bad7ec8d5d80998b64674b39e75214e6093f9434b4665e558d92c318d08bf
MD5 a37d774d6fc758f2fe7926323b566b27
BLAKE2b-256 e9556f633192ec7c44d96ff3cffbd57a64cdd6e9e0b5efd95ba75c2185c67b0e

See more details on using hashes here.

Provenance

The following attestation bundles were made for snkv-0.7.3-cp310-cp310-macosx_11_0_arm64.whl:

Publisher: publish.yml on hash-anu/snkv

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

File details

Details for the file snkv-0.7.3-cp310-cp310-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for snkv-0.7.3-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 9abf963281bdbd7f42abc24dc3f8aa130a2c292a4f8fa7ca63edf3cc88c8a5d2
MD5 1861679fc0463ea04b161b513fa3aa45
BLAKE2b-256 887ec24d0be9992956819827f214b688dc9e2e6687c996fe52244569ac40145f

See more details on using hashes here.

Provenance

The following attestation bundles were made for snkv-0.7.3-cp310-cp310-macosx_10_9_x86_64.whl:

Publisher: publish.yml on hash-anu/snkv

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

File details

Details for the file snkv-0.7.3-cp39-cp39-win_amd64.whl.

File metadata

  • Download URL: snkv-0.7.3-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 204.7 kB
  • Tags: CPython 3.9, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for snkv-0.7.3-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 8f71d64b645722bf3df1ca8602a00cadf3267d7d336a0ccd89d038b8c2a00f62
MD5 e7d349f81bfc91836c053e4f75382b2f
BLAKE2b-256 76bbb0c1a48fd9ca9db4093c979c69e1bafbfa5e34e62e271bfd1216c0082ef1

See more details on using hashes here.

Provenance

The following attestation bundles were made for snkv-0.7.3-cp39-cp39-win_amd64.whl:

Publisher: publish.yml on hash-anu/snkv

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

File details

Details for the file snkv-0.7.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for snkv-0.7.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 de720f410e4248a02f891a08bbabec80fd887a6218e1b61181d008a131225f2d
MD5 b9ff7086c2a34bb4aba1c28763254ca2
BLAKE2b-256 ca15b921449e21624ff3f664caa1f85f68e31d8b9b037e6e6fe5e869cd9a3fb5

See more details on using hashes here.

Provenance

The following attestation bundles were made for snkv-0.7.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: publish.yml on hash-anu/snkv

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

File details

Details for the file snkv-0.7.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for snkv-0.7.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 0e453a20d56a5958246334624292243d401d36a9ddb24bef8cfa5fcfdaffecb0
MD5 887367f153da583e136354c1ec5c8599
BLAKE2b-256 453281668288bf5985755686917faee0cd2953706f2976d7696a25815f7060f2

See more details on using hashes here.

Provenance

The following attestation bundles were made for snkv-0.7.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: publish.yml on hash-anu/snkv

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

File details

Details for the file snkv-0.7.3-cp39-cp39-macosx_11_0_arm64.whl.

File metadata

  • Download URL: snkv-0.7.3-cp39-cp39-macosx_11_0_arm64.whl
  • Upload date:
  • Size: 263.4 kB
  • Tags: CPython 3.9, macOS 11.0+ ARM64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for snkv-0.7.3-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 e8342bf1d2bf6e42cec4dbeee75954584c6a9521d2aea35d563b4bb9e977b900
MD5 e00a107e30d6cd4fcba5f04ddd0439ba
BLAKE2b-256 7c403470b1f43e75ed81206b742c341d206912d180fbb047dbe411846eeb0819

See more details on using hashes here.

Provenance

The following attestation bundles were made for snkv-0.7.3-cp39-cp39-macosx_11_0_arm64.whl:

Publisher: publish.yml on hash-anu/snkv

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

File details

Details for the file snkv-0.7.3-cp39-cp39-macosx_10_9_x86_64.whl.

File metadata

  • Download URL: snkv-0.7.3-cp39-cp39-macosx_10_9_x86_64.whl
  • Upload date:
  • Size: 272.6 kB
  • Tags: CPython 3.9, macOS 10.9+ x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for snkv-0.7.3-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 0da0043f866eed3ac4c4187f000d0e0516ba50bfc0f8d8584c6a42a4439be314
MD5 8d77c880dee95efc4c1899fa3c113e89
BLAKE2b-256 2b29984c80292b3cb5ec05116a9dd95c7582e768e51bb2fbbd902f0bf728cf98

See more details on using hashes here.

Provenance

The following attestation bundles were made for snkv-0.7.3-cp39-cp39-macosx_10_9_x86_64.whl:

Publisher: publish.yml on hash-anu/snkv

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

File details

Details for the file snkv-0.7.3-cp38-cp38-win_amd64.whl.

File metadata

  • Download URL: snkv-0.7.3-cp38-cp38-win_amd64.whl
  • Upload date:
  • Size: 204.7 kB
  • Tags: CPython 3.8, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for snkv-0.7.3-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 32cdc6b99ea1f3114aace92e1b2208ba6e4f33f06abec3c3aeb52586c27bf0df
MD5 283347d17cfa50e639bcd7e2fa7ee179
BLAKE2b-256 70a5163aa29e566f773e282725647004ac8186f103b099129cad1cd1d4fd0c0f

See more details on using hashes here.

Provenance

The following attestation bundles were made for snkv-0.7.3-cp38-cp38-win_amd64.whl:

Publisher: publish.yml on hash-anu/snkv

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

File details

Details for the file snkv-0.7.3-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for snkv-0.7.3-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 7ccd8f755c5bf9dd32885a9fb57057b75edd9b660d500aee6d02f68051c654da
MD5 6e6af16bea1417bb94c48cfcbd05fad5
BLAKE2b-256 a5a2fd2601d4237025d6594107eae6d34379fab3785d05be88266b40788d9073

See more details on using hashes here.

Provenance

The following attestation bundles were made for snkv-0.7.3-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: publish.yml on hash-anu/snkv

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

File details

Details for the file snkv-0.7.3-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for snkv-0.7.3-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 b71e2fa76e0ecf35580e93ad1f1b8f8e6d61608d07cfa99ffbdf4c6da48c06dd
MD5 92482aaa9e1efca3dc22dd1b12e6481d
BLAKE2b-256 24cbf1e35c55f686b32548bf7cfdbb6e610a54564620262d38c6de0e81e97177

See more details on using hashes here.

Provenance

The following attestation bundles were made for snkv-0.7.3-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: publish.yml on hash-anu/snkv

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

File details

Details for the file snkv-0.7.3-cp38-cp38-macosx_11_0_arm64.whl.

File metadata

  • Download URL: snkv-0.7.3-cp38-cp38-macosx_11_0_arm64.whl
  • Upload date:
  • Size: 263.4 kB
  • Tags: CPython 3.8, macOS 11.0+ ARM64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for snkv-0.7.3-cp38-cp38-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 d6110298297e6070ca5fe948c777e207b78e36990fb5223c01895d008f728c78
MD5 201af1d9381dd11ffcdfd1fe039922e1
BLAKE2b-256 cf571ae68409a3b0921aea28d4f4b188b48afb60d11eb6d93f668ec4827d1c2f

See more details on using hashes here.

Provenance

The following attestation bundles were made for snkv-0.7.3-cp38-cp38-macosx_11_0_arm64.whl:

Publisher: publish.yml on hash-anu/snkv

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

File details

Details for the file snkv-0.7.3-cp38-cp38-macosx_10_9_x86_64.whl.

File metadata

  • Download URL: snkv-0.7.3-cp38-cp38-macosx_10_9_x86_64.whl
  • Upload date:
  • Size: 272.6 kB
  • Tags: CPython 3.8, macOS 10.9+ x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for snkv-0.7.3-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 617841c3485a7b18a48bc877433731022abad2a43f4f40ce0ef57bdc2f26a4b6
MD5 fa0b72dff18c9f0f82cf1ab8762e853b
BLAKE2b-256 478aba545abe7ef1158a786b3e34c5f1de27560f3492a1bc0e3097f8f4e023b7

See more details on using hashes here.

Provenance

The following attestation bundles were made for snkv-0.7.3-cp38-cp38-macosx_10_9_x86_64.whl:

Publisher: publish.yml on hash-anu/snkv

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