Skip to main content
Pre-release

This release is a pre-release and may not be stable for production use.

QaNN

QaNN (Quantized Nearest Neighbors) is a Python library for fast nearest-neighbor search over float32 vectors. It offers exact search, inverted-file (IVF) search, product quantization (PQ) compression and exact re-ranking, all implemented in multithreaded, SIMD-accelerated C++ and driven from NumPy.

Alpha: under active development. The API may change between releases.

Install

pip install qann

Wheels are published for Linux (x86_64, aarch64) and macOS (Apple Silicon, Intel) on Python 3.10 to 3.14. x86_64 builds require AVX2 and FMA. To build from source instead, run pip install . in a checkout; this needs CMake 3.20+, a C++20 compiler and, on Linux, OpenBLAS (optional but much faster training).

Quick start

import numpy as np, qann

x = np.random.rand(100_000, 128).astype(np.float32)

ivf = qann.IVFIndex(128, nlist=1024, nprobe=16)
ivf.enable_pq(16)                           # store each vector in 16 bytes
ivf.train(x, seed=1)
index = qann.RefineIndex(ivf, k_factor=10)  # re-rank PQ candidates exactly
index.add(x)

ids, dists = index.batch_query(x[:5], 10)   # both shaped (5, 10)

Conventions

  • Vectors are passed as 2D NumPy arrays of shape (n, dim), except single vectors (query, PQCodebook methods), which are (dim,). float32 C-contiguous arrays are used without copying; anything else (float64, Fortran order, strided slices) is converted first.
  • IDs are assigned in insertion order: the first vector added gets id 0, the next id 1, and so on across all add calls.
  • Distances are squared Euclidean (L2) distances, smallest first. For cosine similarity, L2-normalize vectors before adding and querying.
  • Results from batch_query are an int64 id array and a float32 distance array, both shaped (num_queries, k). Rows with fewer than k hits are padded with id -1 and distance inf.

Indexes

Every index has the same core methods:

Method Description
add(data) Add an (n, dim) array of vectors.
batch_query(queries, k) k nearest neighbors for each row of an (nq, dim) array, run in parallel. Returns (ids, dists).
query(query, k) k nearest neighbors for a single (dim,) vector such as x[i]. Returns 1D (ids, dists).
size() Number of vectors added.
dim() Vector dimension.
save(path) Save the index to a file; see Saving and loading.

FlatIndex(dim)

Exact brute-force search: no training, 100% recall, and query cost that grows linearly with the number of vectors. Good for up to a few hundred thousand vectors, or as ground truth when measuring recall.

index = qann.FlatIndex(128)
index.add(x)
ids, dists = index.batch_query(x[:10], 10)

IVFIndex(dim, nlist, nprobe=10)

Partitions vectors into nlist clusters with k-means and, at query time, scans only the nprobe clusters closest to the query. Much faster than flat search at a small cost in recall.

Member Description
train(data, max_iters=25, seed=None) Learn the cluster centroids from a sample of at least nlist vectors. Call once, before add. Pass seed for reproducible results.
enable_pq(num_subspaces, centroids_per_subspace=256) Compress stored vectors with product quantization. Call before train.
nprobe Property: clusters scanned per query. Can be changed at any time; higher means better recall and slower queries.
pq_distance Property: how PQ codes are scored, qann.PQDistance.ADC (default, more accurate) or qann.PQDistance.SDC.

nlist must be between 100 and 65535, and nprobe between 1 and nlist. A common starting point is nlist around sqrt(n) to 4 * sqrt(n) and nprobe at 1% to 5% of nlist.

With PQ (enable_pq), each vector is split into num_subspaces slices and each slice is stored as one byte, so a 128-dim float32 vector (512 bytes) with 16 subspaces takes 16 bytes. dim must be divisible by num_subspaces. Distances become approximate, which lowers recall; wrap the index in a RefineIndex to recover it.

ivf = qann.IVFIndex(128, nlist=1024, nprobe=16)
ivf.enable_pq(16)
ivf.train(x, seed=1)
ivf.add(x)
ivf.nprobe = 32   # trade speed for recall

RefineIndex(base, k_factor=10)

Wraps a trained, empty approximate index. Each query fetches k * k_factor candidates from base, then re-ranks them with exact distances against full-precision copies of the vectors. Add vectors through the RefineIndex, not the base. k_factor is a property and can be changed at any time, and the read-only base property returns the wrapped index, e.g. to change nprobe.

This is the usual way to combine PQ's speed with near-exact ranking. It keeps the original vectors in memory alongside the PQ codes.

make_index(type, dim, opts=IndexOptions())

Builds an index from a type and an options object, returning a FlatIndex or IVFIndex:

opts = qann.IndexOptions()
opts.nlist, opts.nprobe, opts.pq_subspaces = 1024, 16, 16
ivf = qann.make_index(qann.IndexType.IVF, 128, opts)
ivf.train(x)

IndexType is Flat or IVF. IndexOptions fields and defaults: capacity (Flat initial reserve, 1024), nlist (100), nprobe (10), pq_subspaces (0, meaning no PQ) and pq_centroids (256).

Saving and loading

Any index can be saved to a file and loaded back, including its training, so it doesn't have to be retrained or re-added each run:

index.save("vectors.qann")          # str or pathlib.Path

index = qann.load("vectors.qann")   # returns a FlatIndex, IVFIndex or RefineIndex
ids, dists = index.batch_query(queries, 10)
  • Everything is restored: vectors, ids, IVF centroids, PQ codebooks and settings such as nprobe, pq_distance and k_factor. A loaded index gives identical results and keeps accepting add.
  • A RefineIndex file contains its base index, so loading one restores both. Tune the base through loaded.base, e.g. loaded.base.nprobe = 32.
  • Saving is safe to interrupt: the file is written next to the target as <path>.tmp and renamed into place when complete, so a failed save never leaves a partial file or destroys an existing one.
  • Bad files raise RuntimeError: a missing, truncated or corrupted file, or one that isn't a QaNN index, is rejected instead of loading garbage.
  • Files are versioned. A file can be loaded by any QaNN release that supports its format version; if a future release changes the format, loading an older file raises RuntimeError rather than misreading it.

PQCodebook on its own can't be saved yet; save the IVFIndex that uses it instead.

Product quantization

PQCodebook(dim, num_subspaces, centroids_per_subspace=256) exposes the quantizer used inside IVFIndex for direct use.

Method Description
train(data, max_iters=25, seed=None) Run k-means in each subspace over an (n, dim) array.
encode(vec) Encode a (dim,) vector into a uint8 array of num_subspaces codes.
compute_adc_table(query) Precompute distances from a (dim,) query to every centroid; reuse it across many codes.
distance_adc(table, code) Approximate squared L2 between the table's query and a code (asymmetric).
distance_sdc(query_code, code) Approximate squared L2 between two codes (symmetric).
dim(), num_subspaces(), centroids_per_subspace() Shape of the codebook.
pq = qann.PQCodebook(128, 16)
pq.train(x, seed=1)
codes = [pq.encode(v) for v in x[:1000]]
table = pq.compute_adc_table(x[0])
dists = [pq.distance_adc(table, c) for c in codes]

Utilities

Function Description
l2_distance(a, b) Row-wise squared L2 distance between two (m, dim) arrays; returns shape (m,).
cosine_distance(a, b) Row-wise cosine distance (1 minus cosine similarity) between two (m, dim) arrays.
set_num_threads(n) Threads used for batch queries, adding with PQ and PQ training. 0 (default) uses every core; 1 runs serially.
num_threads() Thread count currently in effect.
__version__ Installed version.

More

See ARCHITECTURE.md for the design, a file-by-file reference and SIFT1M benchmarks.

Metadata

Release files for qann 0.1.0a4

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for qann 0.1.0a4
File Size Uploaded
qann-0.1.0a4.tar.gz 61.3 kB Details

Built distributions (wheels)

Table of built distributions (wheels) for qann 0.1.0a4
File
qann-0.1.0a4-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl CPython 3.14 CPython 3.14 Linux glibc 2.27+ x86-64, Linux glibc 2.28+ x86-64 Details
qann-0.1.0a4-cp314-cp314-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl CPython 3.14 CPython 3.14 Linux glibc 2.27+ ARM64, Linux glibc 2.28+ ARM64 Details
qann-0.1.0a4-cp314-cp314-macosx_11_0_x86_64.whl CPython 3.14 CPython 3.14 macOS 11.0+ x86-64 Details
qann-0.1.0a4-cp314-cp314-macosx_11_0_arm64.whl CPython 3.14 CPython 3.14 macOS 11.0+ ARM64 Details
qann-0.1.0a4-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl CPython 3.13 CPython 3.13 Linux glibc 2.28+ x86-64, Linux glibc 2.27+ x86-64 Details
qann-0.1.0a4-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl CPython 3.13 CPython 3.13 Linux glibc 2.27+ ARM64, Linux glibc 2.28+ ARM64 Details
qann-0.1.0a4-cp313-cp313-macosx_11_0_x86_64.whl CPython 3.13 CPython 3.13 macOS 11.0+ x86-64 Details
qann-0.1.0a4-cp313-cp313-macosx_11_0_arm64.whl CPython 3.13 CPython 3.13 macOS 11.0+ ARM64 Details
qann-0.1.0a4-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl CPython 3.12 CPython 3.12 Linux glibc 2.27+ x86-64, Linux glibc 2.28+ x86-64 Details
qann-0.1.0a4-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl CPython 3.12 CPython 3.12 Linux glibc 2.27+ ARM64, Linux glibc 2.28+ ARM64 Details
qann-0.1.0a4-cp312-cp312-macosx_11_0_x86_64.whl CPython 3.12 CPython 3.12 macOS 11.0+ x86-64 Details
qann-0.1.0a4-cp312-cp312-macosx_11_0_arm64.whl CPython 3.12 CPython 3.12 macOS 11.0+ ARM64 Details
qann-0.1.0a4-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl CPython 3.11 CPython 3.11 Linux glibc 2.27+ x86-64, Linux glibc 2.28+ x86-64 Details
qann-0.1.0a4-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl CPython 3.11 CPython 3.11 Linux glibc 2.27+ ARM64, Linux glibc 2.28+ ARM64 Details
qann-0.1.0a4-cp311-cp311-macosx_11_0_x86_64.whl CPython 3.11 CPython 3.11 macOS 11.0+ x86-64 Details
qann-0.1.0a4-cp311-cp311-macosx_11_0_arm64.whl CPython 3.11 CPython 3.11 macOS 11.0+ ARM64 Details
qann-0.1.0a4-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl CPython 3.10 CPython 3.10 Linux glibc 2.27+ x86-64, Linux glibc 2.28+ x86-64 Details
qann-0.1.0a4-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl CPython 3.10 CPython 3.10 Linux glibc 2.27+ ARM64, Linux glibc 2.28+ ARM64 Details
qann-0.1.0a4-cp310-cp310-macosx_11_0_x86_64.whl CPython 3.10 CPython 3.10 macOS 11.0+ x86-64 Details
qann-0.1.0a4-cp310-cp310-macosx_11_0_arm64.whl CPython 3.10 CPython 3.10 macOS 11.0+ ARM64 Details

Total release size: 88.4 MB

Release files / qann-0.1.0a4.tar.gz

Download URL qann-0.1.0a4.tar.gz
Size 61.3 kB
Tags Source
SHA-256 checksum
How to use checksums
3fdf61bfe153a960f0046114a56e8a4c67b4dca934df788f1e3221926a149179
BLAKE2b-256 checksum
How to use checksums
ad833a1cc84da2607e1610710012ff3784238ff626307a109a42a21e461d05b4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 7, 2026.

Transparency log

Release files / qann-0.1.0a4-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Download URL qann-0.1.0a4-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Size 12.2 MB
Tags CPython 3.14 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
f1ba159766a9f4c8df00ff13c56cd45ee3051bff288640ea22de41d89ce08dd6
BLAKE2b-256 checksum
How to use checksums
9c40630a21e47275b172e673b40086c64fa55b1854398ff06b28ff7ff03da3cd
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 7, 2026.

Transparency log

Release files / qann-0.1.0a4-cp314-cp314-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl

Download URL qann-0.1.0a4-cp314-cp314-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Size 5.2 MB
Tags CPython 3.14 Linux glibc 2.27+ ARM64 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
df3dd1e55f3aaee8999350e53502bbdd6a97f71f3f3e96550ab2d4923363dc62
BLAKE2b-256 checksum
How to use checksums
761614925b0e013944072788f5a5404016ac9e7a84bdb55f9779bcd82833e157
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 7, 2026.

Transparency log

Release files / qann-0.1.0a4-cp314-cp314-macosx_11_0_x86_64.whl

Download URL qann-0.1.0a4-cp314-cp314-macosx_11_0_x86_64.whl
Size 139.5 kB
Tags CPython 3.14 macOS 11.0+ x86-64
SHA-256 checksum
How to use checksums
1795a8fb850b9852125a733352c74f7ddef5a7b6f3a9f09d5e95c5ddd12ea9c4
BLAKE2b-256 checksum
How to use checksums
68d3e98c5bcd64103454db90ae3951bffaf1e9a6c4dfb577f8862476a87a0959
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 7, 2026.

Transparency log

Release files / qann-0.1.0a4-cp314-cp314-macosx_11_0_arm64.whl

Download URL qann-0.1.0a4-cp314-cp314-macosx_11_0_arm64.whl
Size 124.5 kB
Tags CPython 3.14 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
e6d1d5385b99b76d1c0cf04b990ed0b739555ae5af0f0ba4ec76b7d073c13dc9
BLAKE2b-256 checksum
How to use checksums
8173342e1d6205dc9e09768553a6242e7781e770b8a2fb09a3339ad2b2e05f29
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 7, 2026.

Transparency log

Release files / qann-0.1.0a4-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Download URL qann-0.1.0a4-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Size 12.2 MB
Tags CPython 3.13 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
226e3387068e3166e509b652f68a107114764c8b90ddb9e1dc28674066668b61
BLAKE2b-256 checksum
How to use checksums
7cfb5e9fef8a5b984c3509b3a11ffb1325ca1eb9dabe5dd9da138dc142f1362c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 7, 2026.

Transparency log

Release files / qann-0.1.0a4-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl

Download URL qann-0.1.0a4-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Size 5.2 MB
Tags CPython 3.13 Linux glibc 2.27+ ARM64 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
e9d08afdd55e86aac967f9d167eabfe89ea58f240de52cb151eea71f2157ce89
BLAKE2b-256 checksum
How to use checksums
4af84980185f91c33ee2e7a112f0a4d6db4da09f9a877265352e0c2d4204dadc
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 7, 2026.

Transparency log

Release files / qann-0.1.0a4-cp313-cp313-macosx_11_0_x86_64.whl

Download URL qann-0.1.0a4-cp313-cp313-macosx_11_0_x86_64.whl
Size 139.3 kB
Tags CPython 3.13 macOS 11.0+ x86-64
SHA-256 checksum
How to use checksums
07aa39e8b022ad091c469426673014d2a12183ae267cb64cc81fa6b14a1b8afc
BLAKE2b-256 checksum
How to use checksums
9a946961b75db47bbab15530faa1508eca9e1c9b43b3a3f9bdcb49a5c1426190
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 7, 2026.

Transparency log

Release files / qann-0.1.0a4-cp313-cp313-macosx_11_0_arm64.whl

Download URL qann-0.1.0a4-cp313-cp313-macosx_11_0_arm64.whl
Size 124.3 kB
Tags CPython 3.13 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
30c88cf2c600d22663eef9040ac80e167799d2795a89fece37ee4dbeef90286c
BLAKE2b-256 checksum
How to use checksums
51468591eca841155518e2f4bbb72a22385a79341d0eae7de737a01080bb157b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 7, 2026.

Transparency log

Release files / qann-0.1.0a4-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Download URL qann-0.1.0a4-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Size 12.2 MB
Tags CPython 3.12 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
b8d6a9a53a9ea17f1a6fedf54f3a3041cb54c7f76c94131b79816624adc8db3c
BLAKE2b-256 checksum
How to use checksums
0e02e9337fdd61df67365b37106ddb2e647ae7e72e3542593cc25a39f25ba8c8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 7, 2026.

Transparency log

Release files / qann-0.1.0a4-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl

Download URL qann-0.1.0a4-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Size 5.2 MB
Tags CPython 3.12 Linux glibc 2.27+ ARM64 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
ed5617a11e004d8da579434ef6d743825d2bf9c61e7fcf42de310464de93991b
BLAKE2b-256 checksum
How to use checksums
4b7c2eb9d3a8203379326f8c49a660e384c4884450ab3aeff59533d56c6b3da7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 7, 2026.

Transparency log

Release files / qann-0.1.0a4-cp312-cp312-macosx_11_0_x86_64.whl

Download URL qann-0.1.0a4-cp312-cp312-macosx_11_0_x86_64.whl
Size 139.4 kB
Tags CPython 3.12 macOS 11.0+ x86-64
SHA-256 checksum
How to use checksums
8ceebf5fdb6dde340dead789304869f5114f3f07adea748c12ea19e0ccfd0a7d
BLAKE2b-256 checksum
How to use checksums
b1959ac3fb4c2d09d04659a0a11ca56aeec5afd497eac2b73081cafa90b3bae1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 7, 2026.

Transparency log

Release files / qann-0.1.0a4-cp312-cp312-macosx_11_0_arm64.whl

Download URL qann-0.1.0a4-cp312-cp312-macosx_11_0_arm64.whl
Size 124.2 kB
Tags CPython 3.12 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
cb0dee2c97b699a06e7acdaf64be2d4795faaa7caa35ac49592f4736d44b02b9
BLAKE2b-256 checksum
How to use checksums
9160bc866b4e0df937c8d96c1b252ee44bebb6f3be63fba8134843a2ad5af607
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 7, 2026.

Transparency log

Release files / qann-0.1.0a4-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Download URL qann-0.1.0a4-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Size 12.2 MB
Tags CPython 3.11 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
2a03cce5f6696422d224fd8455f2307a9b81fac0109c3cf22e1685cf8283a539
BLAKE2b-256 checksum
How to use checksums
fb3e2e3ccc20c47aaa9092f0951453d71aa6243c9f3683d4c9354e512260f4b0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 7, 2026.

Transparency log

Release files / qann-0.1.0a4-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl

Download URL qann-0.1.0a4-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Size 5.2 MB
Tags CPython 3.11 Linux glibc 2.27+ ARM64 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
b96dd51a5c35deac4f95aaf2754697e23e8b10e8fab6c73e950ac639a3dc588c
BLAKE2b-256 checksum
How to use checksums
05285bb0b9fdfe2fa20da60215e29c2d7c887ff219cf5d04b88d43d45f3dcd86
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 7, 2026.

Transparency log

Release files / qann-0.1.0a4-cp311-cp311-macosx_11_0_x86_64.whl

Download URL qann-0.1.0a4-cp311-cp311-macosx_11_0_x86_64.whl
Size 139.7 kB
Tags CPython 3.11 macOS 11.0+ x86-64
SHA-256 checksum
How to use checksums
eb5e48dcdc36279180103742691371feb520b2a7608bda300a588bfd81ad92c4
BLAKE2b-256 checksum
How to use checksums
c76f7837fad893292688f23b1f9efacf13c989070e5b23bef937d43914888596
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 7, 2026.

Transparency log

Release files / qann-0.1.0a4-cp311-cp311-macosx_11_0_arm64.whl

Download URL qann-0.1.0a4-cp311-cp311-macosx_11_0_arm64.whl
Size 125.0 kB
Tags CPython 3.11 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
e9a9f4b83d33c49156c9e01e5efa17f3f6c615a6dc52496635fbc2cfb85b517b
BLAKE2b-256 checksum
How to use checksums
3c133c6b632e43fe5a9f97b698a8c908c545d78c31c8eaf7cb9ad802b93a07ba
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 7, 2026.

Transparency log

Release files / qann-0.1.0a4-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Download URL qann-0.1.0a4-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Size 12.2 MB
Tags CPython 3.10 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
9a9b08509cb18e415822a33ddfff5f50a455fcc36ede95ba87080ed8a226f2de
BLAKE2b-256 checksum
How to use checksums
0524c4619098dce3b7da53302f84482f111dc7f1ba2d068a69deba2ac72f7c2e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 7, 2026.

Transparency log

Release files / qann-0.1.0a4-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl

Download URL qann-0.1.0a4-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Size 5.2 MB
Tags CPython 3.10 Linux glibc 2.27+ ARM64 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
46b77144386977776149db1be9a740d432e175fbf1514ce3ad2c9d36d9a3a862
BLAKE2b-256 checksum
How to use checksums
27e6795293650364c1a3c4e96da3199bdb0aaff8ac05f4344b554ca4bee7517b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 7, 2026.

Transparency log

Release files / qann-0.1.0a4-cp310-cp310-macosx_11_0_x86_64.whl

Download URL qann-0.1.0a4-cp310-cp310-macosx_11_0_x86_64.whl
Size 139.2 kB
Tags CPython 3.10 macOS 11.0+ x86-64
SHA-256 checksum
How to use checksums
ac5a6babdc6e80accfacefd2a1ec03f0777f10dc10ee9d1550d1cceb0b599b9f
BLAKE2b-256 checksum
How to use checksums
63b4fb1218b6e4073fd2cb3276553f3e1967a7836a552faf3d0202ca7d6ba6c9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 7, 2026.

Transparency log

Release files / qann-0.1.0a4-cp310-cp310-macosx_11_0_arm64.whl

Download URL qann-0.1.0a4-cp310-cp310-macosx_11_0_arm64.whl
Size 124.5 kB
Tags CPython 3.10 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
a70c8e95e31934b79233db3bfc130b8784dd7d4ce549d8361ad5c77a4cf2e0b5
BLAKE2b-256 checksum
How to use checksums
8c53b8c96d023ed3f3898bf7eb8e9cf08f6c9aca1ac0a7161dc273d50c227b44
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 7, 2026.

Transparency log
Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page