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 by default: the first vector added gets id 0, the next id 1, and so on across all add calls. Create an index with custom_ids=True to use your own ids instead; see Custom ids and deleting.
  • 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, ids=None) Add an (n, dim) array of vectors, with n ids if the index uses custom ids.
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).
remove(ids) Delete vectors by id; returns how many were deleted.
size() Number of vectors in the index (deleted ones excluded).
dim() Vector dimension.
save(path) Save the index to a file; see Saving and loading.

FlatIndex(dim, *, custom_ids=False)

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, *, custom_ids=False)

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, *, custom_ids=False)

Wraps a trained, empty approximate index created without custom ids (give the RefineIndex its own custom_ids instead). Each query fetches k * k_factor candidates from base, then re-ranks them with exact distances against full-precision copies of the vectors. Add and remove vectors through the RefineIndex: while it wraps a base, calling add or remove on the base itself raises ValueError (it would put the two out of step), and a base can only be wrapped by one RefineIndex at a time. Tuning the base (nprobe, pq_distance) is fine. 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).

Custom ids and deleting

By default an index numbers vectors 0, 1, 2, ... in the order they're added. To use your own ids (database keys, document ids, ...), create the index with custom_ids=True and pass one id per vector:

index = qann.FlatIndex(128, custom_ids=True)
index.add(vectors, ids=doc_ids)     # doc_ids: one int per row
ids, dists = index.batch_query(queries, 10)   # ids are your doc_ids

index.remove([doc_ids[0], doc_ids[1]])        # returns 2
  • Ids can be a NumPy array of any integer type, a list or a range. They must be >= 0 (-1 marks missing results) and unique within the index; a bad batch raises an error and adds nothing.
  • Every add must pass ids on a custom_ids=True index, and an index created without it refuses them.
  • remove(ids) works with or without custom ids. Unknown and already deleted ids are skipped, so deleting twice is harmless. A deleted id can be added again, with a new vector.
  • Deleted vectors keep their memory for now: queries skip them, but the space isn't reclaimed.
  • For make_index, set IndexOptions.custom_ids.

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 (including custom ids), deletions, IVF centroids, PQ codebooks and settings such as nprobe, pq_distance and k_factor. A loaded index gives identical results and keeps accepting add and remove.
  • 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. Newer releases keep loading files saved by older ones (files from 0.1.0a4 load in 0.1.0a5). A file saved by a newer release than the one loading it raises RuntimeError rather than being misread.

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.

Threads and type hints

  • Thread-safe. Queries, adds and training release Python's GIL while they run, so other Python threads keep running, and several threads can query the same index at once. An add, train or setting change waits for running queries on that index to finish (and blocks new ones until it's done), so concurrent use never sees a half-updated index. This also covers the base of a RefineIndex, e.g. ivf.nprobe = 32 while queries run through the RefineIndex wrapping ivf.
  • Typed. Wheels include type stubs, so editors autocomplete the API and type checkers such as mypy and Pylance/pyright check calls to it.

More

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

Metadata

Release files for qann 0.1.0a5

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.0a5
File Size Uploaded
qann-0.1.0a5.tar.gz 385.5 kB Details

Built distributions (wheels)

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

Total release size: 89.0 MB

Release files / qann-0.1.0a5.tar.gz

Download URL qann-0.1.0a5.tar.gz
Size 385.5 kB
Tags Source
SHA-256 checksum
How to use checksums
1bfa06e40db788605b1e5b385be1b0120ba25963ca12c0e22847664bceb3097a
BLAKE2b-256 checksum
How to use checksums
28eadf638a4759de51f75d5bad81fd84bbd3df65000c6b19e5cb920b2b75a7e6
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 8, 2026.

Transparency log

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

Download URL qann-0.1.0a5-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
569b922de7821969878c126eaf01e6a26a130087d32c5916f0f9a4d318f9e9c3
BLAKE2b-256 checksum
How to use checksums
99096ff11c76423a1b473321d6ad54ce94cca1c82f3987111eef19fdc1c7e613
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 8, 2026.

Transparency log

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

Download URL qann-0.1.0a5-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
bac5a87bc2e290b8d911595acdac71a954af4f9704a6fff91f8af48fd427340a
BLAKE2b-256 checksum
How to use checksums
1599e8c6651c033de3a6c4dd01db66b45067dbe7b9aade75755c6993a0246ee8
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 8, 2026.

Transparency log

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

Download URL qann-0.1.0a5-cp314-cp314-macosx_11_0_x86_64.whl
Size 157.2 kB
Tags CPython 3.14 macOS 11.0+ x86-64
SHA-256 checksum
How to use checksums
446628198ce9569f8a55267c99aff94585129c45e30594b0c80987f324a90918
BLAKE2b-256 checksum
How to use checksums
3f7df4d8e8820886f0c25d0c8dc94330aeadc72fdd178a4494504d53a14f2f5b
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 8, 2026.

Transparency log

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

Download URL qann-0.1.0a5-cp314-cp314-macosx_11_0_arm64.whl
Size 141.3 kB
Tags CPython 3.14 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
2704a532f0c9c2d0be5d4150926cc3ed7bcdc2c4d9e67d3feef3cbd85486978d
BLAKE2b-256 checksum
How to use checksums
6c092c3a3e431a5b634f66644a3c22bc006f9c56555b0b99e39aca0db2577403
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 8, 2026.

Transparency log

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

Download URL qann-0.1.0a5-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
705351a871e1ceb6fa2a24ac47bb1ac2747de2e49dbae51f872ad5f73a69a85d
BLAKE2b-256 checksum
How to use checksums
8fe668b715e5d913aa64712025a5d6877fb67e6cda1883c16660a222998a6e9a
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 8, 2026.

Transparency log

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

Download URL qann-0.1.0a5-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
d92586e5cfaea6da328a1bf5bc7f2e600242c67cb740e1202032991aaaa54fa8
BLAKE2b-256 checksum
How to use checksums
b0136dcdd584abf5ee990ec8750604a49183c77d52ba0650c36cdc701a8a8eae
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 8, 2026.

Transparency log

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

Download URL qann-0.1.0a5-cp313-cp313-macosx_11_0_x86_64.whl
Size 157.2 kB
Tags CPython 3.13 macOS 11.0+ x86-64
SHA-256 checksum
How to use checksums
8d172e7b90a8b6ffe730a4043e94595da2cd359247ceaff771b5963b9250b976
BLAKE2b-256 checksum
How to use checksums
3233d2764e8f156fc1204c1fbf8c3bb9390a082bb97db9fc16f527279480dd28
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 8, 2026.

Transparency log

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

Download URL qann-0.1.0a5-cp313-cp313-macosx_11_0_arm64.whl
Size 141.1 kB
Tags CPython 3.13 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
595d5e68a13be062a04cdc0be725931ededfffac4aa4b45ee6e92289c18c25cf
BLAKE2b-256 checksum
How to use checksums
5b7e455d152beb9c37d239455672084f6d92606ce4f43478b6fad45ddecf7c52
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 8, 2026.

Transparency log

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

Download URL qann-0.1.0a5-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
a545ae5b802957821ae0ef35c82841b865c201440d263a81ef614028b22b0d42
BLAKE2b-256 checksum
How to use checksums
9f78376284464252effaa1e282a35c4bd41fa232887ee453f29f34e12bab3cc3
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 8, 2026.

Transparency log

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

Download URL qann-0.1.0a5-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
51d44f102660b2b3bfab490456695d9b6ad102c47b859399748834409654f7c0
BLAKE2b-256 checksum
How to use checksums
8c21b808fc2348355ec3cb5522e956ef7dcd4ac63f23d8de27193066cb017d88
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 8, 2026.

Transparency log

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

Download URL qann-0.1.0a5-cp312-cp312-macosx_11_0_x86_64.whl
Size 157.3 kB
Tags CPython 3.12 macOS 11.0+ x86-64
SHA-256 checksum
How to use checksums
2c82ac06860ab4943df98d8c4bf656730edee75a3a5ee4102eb1aad5ae68b72f
BLAKE2b-256 checksum
How to use checksums
80398b6d260fbc28f1eacfe94f8c592b222c9fee0e49999fd6e18fb73873580b
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 8, 2026.

Transparency log

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

Download URL qann-0.1.0a5-cp312-cp312-macosx_11_0_arm64.whl
Size 141.1 kB
Tags CPython 3.12 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
3459899fd7f11a50570b1ec6df9ab5670a899dd0fc500cbb380b15a523edd808
BLAKE2b-256 checksum
How to use checksums
ef42313707f7264bb1c2c5e1c44f299cf4ee2ae6c511be2d5518f4b8e6f93ad0
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 8, 2026.

Transparency log

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

Download URL qann-0.1.0a5-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
67f5eca6cc515e3ad3ab4626b7ff396101b4e57f4960ce2f558647a0b37ba30b
BLAKE2b-256 checksum
How to use checksums
695932a00f296a3bdaf8c2ccadb409ac93e3aa8bcbc0425db8a4d926ed28ce01
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 8, 2026.

Transparency log

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

Download URL qann-0.1.0a5-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
36869b2f79fe9e437c569a7fa93a2dffde02f3be63b2ba561d7c92c46aa356d9
BLAKE2b-256 checksum
How to use checksums
2117d28b4e3817627951f1a2de926f3aab713253ffde6e7e65e0d914e6567c95
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 8, 2026.

Transparency log

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

Download URL qann-0.1.0a5-cp311-cp311-macosx_11_0_x86_64.whl
Size 157.5 kB
Tags CPython 3.11 macOS 11.0+ x86-64
SHA-256 checksum
How to use checksums
ee9699705d128d16a07d4cdebd51b8b6dda88c761bca4f5a0722a3e0c02942f8
BLAKE2b-256 checksum
How to use checksums
3f7713811bd413603231b48eacaa888eb6ec9921e7f575ba95d15c50b914bcc0
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 8, 2026.

Transparency log

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

Download URL qann-0.1.0a5-cp311-cp311-macosx_11_0_arm64.whl
Size 141.7 kB
Tags CPython 3.11 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
c7654b094795529ac5157c8cc3574356519251de9fa6250a7a03cb2563d260ec
BLAKE2b-256 checksum
How to use checksums
9bafa3da004944a3853cc05a191548304eb8b9256c87a1fc13384bf9a0006b76
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 8, 2026.

Transparency log

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

Download URL qann-0.1.0a5-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
7966e04adc3c79f41f9f82b7a17a5f22b3ef8ef1d47488496b8777b467ab0ff9
BLAKE2b-256 checksum
How to use checksums
d165baf86beac3374cf8e052a400528cf2ef97e4d77c44608da655e6a49b4eb5
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 8, 2026.

Transparency log

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

Download URL qann-0.1.0a5-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
4ed48ef70af3bf869cefcc11e9e40fcbd94925d7ca892eb72d2ba1740a6b88c1
BLAKE2b-256 checksum
How to use checksums
da91fe85067739f3c62371aece7fe9c667c9f330efb3e19ad5efc880e1d90ab0
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 8, 2026.

Transparency log

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

Download URL qann-0.1.0a5-cp310-cp310-macosx_11_0_x86_64.whl
Size 157.1 kB
Tags CPython 3.10 macOS 11.0+ x86-64
SHA-256 checksum
How to use checksums
935f01f468aa9a5e94b495f92171b082ced9018839485c09cf13ff3fb9f8608b
BLAKE2b-256 checksum
How to use checksums
f4a7131823aca2ae1dfec1fafe6d784422db20c4d493f4641efd185038183b6e
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 8, 2026.

Transparency log

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

Download URL qann-0.1.0a5-cp310-cp310-macosx_11_0_arm64.whl
Size 141.4 kB
Tags CPython 3.10 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
b8f4dced2a57482f700ccd7a587722a19ad34063b9212cc52473548d08673913
BLAKE2b-256 checksum
How to use checksums
52c5d0527d1c5b1d5dec48665c6439b07042c6fd325b7f5e37fdc92d67f6aefc
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 8, 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