Skip to main content

Approximate Nearest Neighbors in C++/Python optimized for memory usage and loading/saving to disk.

Project description

https://img.shields.io/github/stars/spotify/annoy.svg

Annoy

Annoy example
https://github.com/spotify/annoy/actions/workflows/ci.yml/badge.svg

Annoy (Approximate Nearest Neighbors Oh Yeah) is a C++ library with Python bindings to search for points in space that are close to a given query point. It also creates large read-only file-based data structures that are mmapped into memory so that many processes may share the same data.

Install

To install, simply do pip install --user annoy to pull down the latest version from PyPI.

For the C++ version, just clone the repo and #include "annoylib.h".

Background

There are some other libraries to do nearest neighbor search. Annoy is almost as fast as the fastest libraries, (see below), but there is actually another feature that really sets Annoy apart: it has the ability to use static files as indexes. In particular, this means you can share index across processes. Annoy also decouples creating indexes from loading them, so you can pass around indexes as files and map them into memory quickly. Another nice thing of Annoy is that it tries to minimize memory footprint so the indexes are quite small.

Why is this useful? If you want to find nearest neighbors and you have many CPU’s, you only need to build the index once. You can also pass around and distribute static files to use in production environment, in Hadoop jobs, etc. Any process will be able to load (mmap) the index into memory and will be able to do lookups immediately.

We use it at Spotify for music recommendations. After running matrix factorization algorithms, every user/item can be represented as a vector in f-dimensional space. This library helps us search for similar users/items. We have many millions of tracks in a high-dimensional space, so memory usage is a prime concern.

Annoy was built by Erik Bernhardsson in a couple of afternoons during Hack Week.

Summary of features

  • Euclidean distance, Manhattan distance, cosine distance, Hamming distance, or Dot (Inner) Product distance

  • Cosine distance is equivalent to Euclidean distance of normalized vectors = sqrt(2-2*cos(u, v))

  • Works better if you don’t have too many dimensions (like <100) but seems to perform surprisingly well even up to 1,000 dimensions

  • Small memory usage

  • Lets you share memory between multiple processes

  • Index creation is separate from lookup (in particular you can not add more items once the tree has been created)

  • Native Python support, tested with 2.7, 3.6, and 3.7.

  • Build index on disk to enable indexing big datasets that won’t fit into memory (contributed by Rene Hollander)

Python code example

from annoy import AnnoyIndex
import random

f = 40  # Length of item vector that will be indexed

t = AnnoyIndex(f, 'angular')
for i in range(1000):
    v = [random.gauss(0, 1) for z in range(f)]
    t.add_item(i, v)

t.build(10) # 10 trees
t.save('test.ann')

# ...

u = AnnoyIndex(f, 'angular')
u.load('test.ann') # super fast, will just mmap the file
print(u.get_nns_by_item(0, 1000)) # will find the 1000 nearest neighbors

Right now it only accepts integers as identifiers for items. Note that it will allocate memory for max(id)+1 items because it assumes your items are numbered 0 … n-1. If you need other id’s, you will have to keep track of a map yourself.

Full Python API

  • AnnoyIndex(f, metric) returns a new index that’s read-write and stores vector of f dimensions. Metric can be "angular", "euclidean", "manhattan", "hamming", or "dot".

  • a.add_item(i, v) adds item i (any nonnegative integer) with vector v. Note that it will allocate memory for max(i)+1 items.

  • a.build(n_trees, n_jobs=-1) builds a forest of n_trees trees. More trees gives higher precision when querying. After calling build, no more items can be added. n_jobs specifies the number of threads used to build the trees. n_jobs=-1 uses all available CPU cores.

  • a.save(fn, prefault=False) saves the index to disk and loads it (see next function). After saving, no more items can be added.

  • a.load(fn, prefault=False) loads (mmaps) an index from disk. If prefault is set to True, it will pre-read the entire file into memory (using mmap with MAP_POPULATE). Default is False.

  • a.unload() unloads.

  • a.get_nns_by_item(i, n, search_k=-1, include_distances=False) returns the n closest items. During the query it will inspect up to search_k nodes which defaults to n_trees * n if not provided. search_k gives you a run-time tradeoff between better accuracy and speed. If you set include_distances to True, it will return a 2 element tuple with two lists in it: the second one containing all corresponding distances.

  • a.get_nns_by_vector(v, n, search_k=-1, include_distances=False) same but query by vector v.

  • a.get_item_vector(i) returns the vector for item i that was previously added.

  • a.get_distance(i, j) returns the distance between items i and j. NOTE: this used to return the squared distance, but has been changed as of Aug 2016.

  • a.get_n_items() returns the number of items in the index.

  • a.get_n_trees() returns the number of trees in the index.

  • a.on_disk_build(fn) prepares annoy to build the index in the specified file instead of RAM (execute before adding items, no need to save after build)

  • a.set_seed(seed) will initialize the random number generator with the given seed. Only used for building up the tree, i. e. only necessary to pass this before adding the items. Will have no effect after calling a.build(n_trees) or a.load(fn).

Notes:

  • There’s no bounds checking performed on the values so be careful.

  • Annoy uses Euclidean distance of normalized vectors for its angular distance, which for two vectors u,v is equal to sqrt(2(1-cos(u,v)))

The C++ API is very similar: just #include "annoylib.h" to get access to it.

Tradeoffs

There are just two main parameters needed to tune Annoy: the number of trees n_trees and the number of nodes to inspect during searching search_k.

  • n_trees is provided during build time and affects the build time and the index size. A larger value will give more accurate results, but larger indexes.

  • search_k is provided in runtime and affects the search performance. A larger value will give more accurate results, but will take longer time to return.

If search_k is not provided, it will default to n * n_trees where n is the number of approximate nearest neighbors. Otherwise, search_k and n_trees are roughly independent, i.e. the value of n_trees will not affect search time if search_k is held constant and vice versa. Basically it’s recommended to set n_trees as large as possible given the amount of memory you can afford, and it’s recommended to set search_k as large as possible given the time constraints you have for the queries.

You can also accept slower search times in favour of reduced loading times, memory usage, and disk IO. On supported platforms the index is prefaulted during load and save, causing the file to be pre-emptively read from disk into memory. If you set prefault to False, pages of the mmapped index are instead read from disk and cached in memory on-demand, as necessary for a search to complete. This can significantly increase early search times but may be better suited for systems with low memory compared to index size, when few queries are executed against a loaded index, and/or when large areas of the index are unlikely to be relevant to search queries.

How does it work

Using random projections and by building up a tree. At every intermediate node in the tree, a random hyperplane is chosen, which divides the space into two subspaces. This hyperplane is chosen by sampling two points from the subset and taking the hyperplane equidistant from them.

We do this k times so that we get a forest of trees. k has to be tuned to your need, by looking at what tradeoff you have between precision and performance.

Hamming distance (contributed by Martin Aumüller) packs the data into 64-bit integers under the hood and uses built-in bit count primitives so it could be quite fast. All splits are axis-aligned.

Dot Product distance (contributed by Peter Sobot and Pavel Korobov) reduces the provided vectors from dot (or “inner-product”) space to a more query-friendly cosine space using a method by Bachrach et al., at Microsoft Research, published in 2014.

More info

ANN benchmarks

Source code

It’s all written in C++ with a handful of ugly optimizations for performance and memory usage. You have been warned :)

The code should support Windows, thanks to Qiang Kou and Timothy Riley.

To run the tests, execute python setup.py nosetests. The test suite includes a big real world dataset that is downloaded from the internet, so it will take a few minutes to execute.

Discuss

Feel free to post any questions or comments to the annoy-user group. I’m @fulhack on Twitter.

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

annoy_mm-1.17.3.tar.gz (648.1 kB view details)

Uploaded Source

Built Distributions

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

annoy_mm-1.17.3-cp313-cp313-win_amd64.whl (54.5 kB view details)

Uploaded CPython 3.13Windows x86-64

annoy_mm-1.17.3-cp313-cp313-win32.whl (46.5 kB view details)

Uploaded CPython 3.13Windows x86

annoy_mm-1.17.3-cp313-cp313-musllinux_1_2_x86_64.whl (1.6 MB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ x86-64

annoy_mm-1.17.3-cp313-cp313-musllinux_1_2_i686.whl (1.7 MB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ i686

annoy_mm-1.17.3-cp313-cp313-musllinux_1_2_aarch64.whl (1.5 MB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ ARM64

annoy_mm-1.17.3-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (582.6 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.24+ x86-64manylinux: glibc 2.28+ x86-64

annoy_mm-1.17.3-cp313-cp313-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl (545.7 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.24+ ARM64manylinux: glibc 2.28+ ARM64

annoy_mm-1.17.3-cp313-cp313-manylinux_2_17_i686.manylinux2014_i686.whl (548.8 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ i686

annoy_mm-1.17.3-cp313-cp313-macosx_11_0_arm64.whl (64.2 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

annoy_mm-1.17.3-cp312-cp312-win_amd64.whl (54.5 kB view details)

Uploaded CPython 3.12Windows x86-64

annoy_mm-1.17.3-cp312-cp312-win32.whl (46.5 kB view details)

Uploaded CPython 3.12Windows x86

annoy_mm-1.17.3-cp312-cp312-musllinux_1_2_x86_64.whl (1.6 MB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ x86-64

annoy_mm-1.17.3-cp312-cp312-musllinux_1_2_i686.whl (1.7 MB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ i686

annoy_mm-1.17.3-cp312-cp312-musllinux_1_2_aarch64.whl (1.5 MB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ ARM64

annoy_mm-1.17.3-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (582.7 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.24+ x86-64manylinux: glibc 2.28+ x86-64

annoy_mm-1.17.3-cp312-cp312-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl (545.6 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.24+ ARM64manylinux: glibc 2.28+ ARM64

annoy_mm-1.17.3-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl (549.0 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ i686

annoy_mm-1.17.3-cp312-cp312-macosx_11_0_arm64.whl (64.2 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

annoy_mm-1.17.3-cp311-cp311-win_amd64.whl (54.4 kB view details)

Uploaded CPython 3.11Windows x86-64

annoy_mm-1.17.3-cp311-cp311-win32.whl (46.5 kB view details)

Uploaded CPython 3.11Windows x86

annoy_mm-1.17.3-cp311-cp311-musllinux_1_2_x86_64.whl (1.6 MB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ x86-64

annoy_mm-1.17.3-cp311-cp311-musllinux_1_2_i686.whl (1.7 MB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ i686

annoy_mm-1.17.3-cp311-cp311-musllinux_1_2_aarch64.whl (1.5 MB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ ARM64

annoy_mm-1.17.3-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (583.4 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.24+ x86-64manylinux: glibc 2.28+ x86-64

annoy_mm-1.17.3-cp311-cp311-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl (546.6 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.24+ ARM64manylinux: glibc 2.28+ ARM64

annoy_mm-1.17.3-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl (550.1 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ i686

annoy_mm-1.17.3-cp311-cp311-macosx_11_0_arm64.whl (64.2 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

annoy_mm-1.17.3-cp310-cp310-win_amd64.whl (54.4 kB view details)

Uploaded CPython 3.10Windows x86-64

annoy_mm-1.17.3-cp310-cp310-win32.whl (46.5 kB view details)

Uploaded CPython 3.10Windows x86

annoy_mm-1.17.3-cp310-cp310-musllinux_1_2_x86_64.whl (1.6 MB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ x86-64

annoy_mm-1.17.3-cp310-cp310-musllinux_1_2_i686.whl (1.7 MB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ i686

annoy_mm-1.17.3-cp310-cp310-musllinux_1_2_aarch64.whl (1.5 MB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ ARM64

annoy_mm-1.17.3-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (582.6 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.24+ x86-64manylinux: glibc 2.28+ x86-64

annoy_mm-1.17.3-cp310-cp310-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl (545.5 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.24+ ARM64manylinux: glibc 2.28+ ARM64

annoy_mm-1.17.3-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl (549.1 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ i686

annoy_mm-1.17.3-cp310-cp310-macosx_11_0_arm64.whl (64.2 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

annoy_mm-1.17.3-cp39-cp39-win_amd64.whl (54.5 kB view details)

Uploaded CPython 3.9Windows x86-64

annoy_mm-1.17.3-cp39-cp39-win32.whl (46.5 kB view details)

Uploaded CPython 3.9Windows x86

annoy_mm-1.17.3-cp39-cp39-musllinux_1_2_x86_64.whl (1.6 MB view details)

Uploaded CPython 3.9musllinux: musl 1.2+ x86-64

annoy_mm-1.17.3-cp39-cp39-musllinux_1_2_i686.whl (1.7 MB view details)

Uploaded CPython 3.9musllinux: musl 1.2+ i686

annoy_mm-1.17.3-cp39-cp39-musllinux_1_2_aarch64.whl (1.5 MB view details)

Uploaded CPython 3.9musllinux: musl 1.2+ ARM64

annoy_mm-1.17.3-cp39-cp39-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (582.3 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.24+ x86-64manylinux: glibc 2.28+ x86-64

annoy_mm-1.17.3-cp39-cp39-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl (545.2 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.24+ ARM64manylinux: glibc 2.28+ ARM64

annoy_mm-1.17.3-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl (548.8 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ i686

annoy_mm-1.17.3-cp39-cp39-macosx_11_0_arm64.whl (64.2 kB view details)

Uploaded CPython 3.9macOS 11.0+ ARM64

annoy_mm-1.17.3-cp38-cp38-win_amd64.whl (54.4 kB view details)

Uploaded CPython 3.8Windows x86-64

annoy_mm-1.17.3-cp38-cp38-win32.whl (46.4 kB view details)

Uploaded CPython 3.8Windows x86

annoy_mm-1.17.3-cp38-cp38-musllinux_1_2_x86_64.whl (1.6 MB view details)

Uploaded CPython 3.8musllinux: musl 1.2+ x86-64

annoy_mm-1.17.3-cp38-cp38-musllinux_1_2_i686.whl (1.7 MB view details)

Uploaded CPython 3.8musllinux: musl 1.2+ i686

annoy_mm-1.17.3-cp38-cp38-musllinux_1_2_aarch64.whl (1.5 MB view details)

Uploaded CPython 3.8musllinux: musl 1.2+ ARM64

annoy_mm-1.17.3-cp38-cp38-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (582.3 kB view details)

Uploaded CPython 3.8manylinux: glibc 2.24+ x86-64manylinux: glibc 2.28+ x86-64

annoy_mm-1.17.3-cp38-cp38-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl (545.2 kB view details)

Uploaded CPython 3.8manylinux: glibc 2.24+ ARM64manylinux: glibc 2.28+ ARM64

annoy_mm-1.17.3-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl (548.8 kB view details)

Uploaded CPython 3.8manylinux: glibc 2.17+ i686

annoy_mm-1.17.3-cp38-cp38-macosx_11_0_arm64.whl (64.0 kB view details)

Uploaded CPython 3.8macOS 11.0+ ARM64

File details

Details for the file annoy_mm-1.17.3.tar.gz.

File metadata

  • Download URL: annoy_mm-1.17.3.tar.gz
  • Upload date:
  • Size: 648.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.11

File hashes

Hashes for annoy_mm-1.17.3.tar.gz
Algorithm Hash digest
SHA256 e4d40b2188c61e5006ba711191322cd37d91dc98729375622df04d854b86ef1e
MD5 3e00ce0bfce1fbfd6251ae93cab5bff8
BLAKE2b-256 9e87e52fa691f0cad9ccc3e60e8db82dbd55cc811f43abd80ff933a6164f72e6

See more details on using hashes here.

File details

Details for the file annoy_mm-1.17.3-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: annoy_mm-1.17.3-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 54.5 kB
  • Tags: CPython 3.13, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for annoy_mm-1.17.3-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 47fb6ae53cb3bda86f774c8bac21f6246089c0600f6e7f77aa5156a7606f8909
MD5 96742c409fef25ed3d253d3956592e4d
BLAKE2b-256 96de071fb62d1380c5011229032df877d852ce2c7e9fd9fd2e0bb5935a3b9cdf

See more details on using hashes here.

Provenance

The following attestation bundles were made for annoy_mm-1.17.3-cp313-cp313-win_amd64.whl:

Publisher: publish.yml on mathematicalmichael/annoy

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

File details

Details for the file annoy_mm-1.17.3-cp313-cp313-win32.whl.

File metadata

  • Download URL: annoy_mm-1.17.3-cp313-cp313-win32.whl
  • Upload date:
  • Size: 46.5 kB
  • Tags: CPython 3.13, Windows x86
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for annoy_mm-1.17.3-cp313-cp313-win32.whl
Algorithm Hash digest
SHA256 c953477981c4ad0ca8b88da7abc7d8fff635324975e904e5c4570bb5dcfdf13d
MD5 e2d7d40d04cadce19076d3e6e6f5b0ba
BLAKE2b-256 c0ebd5de9e55cc3ea41c0ac946b305bf3ab9967dc2c2b152967e91e6b3cd08fd

See more details on using hashes here.

Provenance

The following attestation bundles were made for annoy_mm-1.17.3-cp313-cp313-win32.whl:

Publisher: publish.yml on mathematicalmichael/annoy

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

File details

Details for the file annoy_mm-1.17.3-cp313-cp313-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for annoy_mm-1.17.3-cp313-cp313-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 1c90c2be431c64145aedd1cb286ff9667daba4ec718940d619a3ad47a6d2ab6c
MD5 53922addab20b038ee0b9b38a18012ba
BLAKE2b-256 2494caee0ad9c812fd837ab8ee2613d34db430ecac31dff7741c22f252dedcc2

See more details on using hashes here.

File details

Details for the file annoy_mm-1.17.3-cp313-cp313-musllinux_1_2_i686.whl.

File metadata

File hashes

Hashes for annoy_mm-1.17.3-cp313-cp313-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 ba336e1085a5f025e3c31d7164ee993fffaf4ab1afa3f71c5ed2dbd4a5088065
MD5 c1e267339ccfd6b6ac064fbf3382d04f
BLAKE2b-256 2270289a71752ea67b145a2d2cf7de85749f3252955b89ecb087ba470f7ecdc5

See more details on using hashes here.

File details

Details for the file annoy_mm-1.17.3-cp313-cp313-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for annoy_mm-1.17.3-cp313-cp313-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 554097d695791b5fab18323549066c8ed543be896e27965f904b9cd52943db11
MD5 198a796f24138560acc7e515f790d5dd
BLAKE2b-256 258738dac9ce4d3325cf903322d789fd01dc2a11dbf15918da061edd1d4b7eec

See more details on using hashes here.

File details

Details for the file annoy_mm-1.17.3-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for annoy_mm-1.17.3-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 adcf9e7dc9c6ade006c02d1321c511c63306d4aed7553fd44391abfc9b42cd82
MD5 d5f553a38f391463450874de79cf265e
BLAKE2b-256 71fa60ef1daa99cacb8d6fcbccce499f1e19814f52cabc3e498c93cbc8cc0de4

See more details on using hashes here.

File details

Details for the file annoy_mm-1.17.3-cp313-cp313-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for annoy_mm-1.17.3-cp313-cp313-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 6f18ac27d0049cb0e497181fa78d5fc27268c9b57ad593691226928dcb25282c
MD5 c15e9c088de05aea5983d3e9841d681d
BLAKE2b-256 d6cd2f87e908ecc3e2e8a57e9e3f45df39934fe632faafa32adea360a5384fb8

See more details on using hashes here.

File details

Details for the file annoy_mm-1.17.3-cp313-cp313-manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for annoy_mm-1.17.3-cp313-cp313-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 df7e600913fd27ef11b2543d993feee3783e73b50fd6d24eb53e8567f258fcba
MD5 043ceb3d0456cf92475e828a63a08834
BLAKE2b-256 b04f07fef1073f9c4d3923ae393d11fb88cad76ba868d81288a9cab4173112db

See more details on using hashes here.

File details

Details for the file annoy_mm-1.17.3-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for annoy_mm-1.17.3-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 0d7d9df8145063ab10ba9c9a5e7020d8ad60cdf26231270d2285e6aedc8e700a
MD5 2e4755b362e3b1a862963bba43ceb189
BLAKE2b-256 dc4cca3182ac49a0fc4e394beef0cffb86109b6199a89f092de5c6e3fc494852

See more details on using hashes here.

Provenance

The following attestation bundles were made for annoy_mm-1.17.3-cp313-cp313-macosx_11_0_arm64.whl:

Publisher: publish.yml on mathematicalmichael/annoy

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

File details

Details for the file annoy_mm-1.17.3-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: annoy_mm-1.17.3-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 54.5 kB
  • Tags: CPython 3.12, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for annoy_mm-1.17.3-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 e3cbe7a50d9b11a5ee36a9a09a03c95da2c2b6cf1dad5000f3a79a66a3e69518
MD5 ddb08f3f8c5cf1b508aa262d1e9f1518
BLAKE2b-256 9469f7cae39fb48113006d4ac2b2818baf86239296d9746923cc0b4fcc4e9c49

See more details on using hashes here.

Provenance

The following attestation bundles were made for annoy_mm-1.17.3-cp312-cp312-win_amd64.whl:

Publisher: publish.yml on mathematicalmichael/annoy

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

File details

Details for the file annoy_mm-1.17.3-cp312-cp312-win32.whl.

File metadata

  • Download URL: annoy_mm-1.17.3-cp312-cp312-win32.whl
  • Upload date:
  • Size: 46.5 kB
  • Tags: CPython 3.12, Windows x86
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for annoy_mm-1.17.3-cp312-cp312-win32.whl
Algorithm Hash digest
SHA256 e3627e897333fe5efb1e1ef081538d9fdcf4d8e2398dd42802a5bd142d431b24
MD5 f9106c301b328fa84a13f835a3599dcc
BLAKE2b-256 d4cc14b4c94d8a2dbaa4988c680c1af4f1e7f6a7b096ccbf7e28691bed6b7ec3

See more details on using hashes here.

Provenance

The following attestation bundles were made for annoy_mm-1.17.3-cp312-cp312-win32.whl:

Publisher: publish.yml on mathematicalmichael/annoy

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

File details

Details for the file annoy_mm-1.17.3-cp312-cp312-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for annoy_mm-1.17.3-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 9ca9ea1c81906ee03b2bb8649ad15cc2eebaaa0d57119ea5fcf5f2066730f265
MD5 169e6a3b8abfefbbe1535f3fc0e061ef
BLAKE2b-256 ad0ad79e1495d42e933cd8c010c20b7b2ef557a84e4778a2a860d36e9922e29b

See more details on using hashes here.

File details

Details for the file annoy_mm-1.17.3-cp312-cp312-musllinux_1_2_i686.whl.

File metadata

File hashes

Hashes for annoy_mm-1.17.3-cp312-cp312-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 7d84e7c870fc6909cbb23a8f168678e070a1af7323d2837a4ecd227011dba5e8
MD5 6ec465e8a08cc4bc78def891530a62ac
BLAKE2b-256 a4ec126f3d58e6865eb872c4136c60d106cab2ee0cc3b4eea09445b242a3ad17

See more details on using hashes here.

File details

Details for the file annoy_mm-1.17.3-cp312-cp312-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for annoy_mm-1.17.3-cp312-cp312-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 6bf52848523c3cf25d1dd6542d342ab6e104fe462edad6ae22c3aa5ac31756f9
MD5 a87f5d1b06cc021146125e9617d8fb81
BLAKE2b-256 a12832880044d607b870bd77846a27b4bb72e7db03525bd14c9dd9766cbce418

See more details on using hashes here.

File details

Details for the file annoy_mm-1.17.3-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for annoy_mm-1.17.3-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 39e6edfd9ba0c85f81be4b9a68f09fd115f08c0211aa280a6cbdcd45b72cac43
MD5 50a7a64d0b2f79a9b1cb79c1504e0191
BLAKE2b-256 b4a2443dbfc1607db3ec0ae34bd8b4df5fe1ab8e49b240dc8cb6ec446ea1f43e

See more details on using hashes here.

File details

Details for the file annoy_mm-1.17.3-cp312-cp312-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for annoy_mm-1.17.3-cp312-cp312-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 e774325dd3273e9c525ba85beae279839010af51724aaa080a8565c7addc8235
MD5 2f2f8acc385497fa8ffe0c8a56090c37
BLAKE2b-256 66bb99366fdb507366d50ca63e3f491a5b2ce8fffa79b7b1492780a94ef22770

See more details on using hashes here.

File details

Details for the file annoy_mm-1.17.3-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for annoy_mm-1.17.3-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 c18d5d38d33a3565fcfc6d491be526ed3e710ed473af417aefea42b58b9e8ee4
MD5 11b3dbc5ef8b535ac826e2a38481ac1f
BLAKE2b-256 7c5dc0250a736f27334f248e7c642f13fcc60d8323f6ed5a6186dbf0bea3eb94

See more details on using hashes here.

File details

Details for the file annoy_mm-1.17.3-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for annoy_mm-1.17.3-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 d5aadef89be5f49b41465d63f4709be6f8e268eadb576b3d1d88b6aae20f8ab2
MD5 4ef607527392e20dcdbab22ca3a99124
BLAKE2b-256 baa1e85625b6056b71ab19a54851f8e5d192f1e12187da74f02aad0b1d6f29ed

See more details on using hashes here.

Provenance

The following attestation bundles were made for annoy_mm-1.17.3-cp312-cp312-macosx_11_0_arm64.whl:

Publisher: publish.yml on mathematicalmichael/annoy

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

File details

Details for the file annoy_mm-1.17.3-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: annoy_mm-1.17.3-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 54.4 kB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for annoy_mm-1.17.3-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 4f1b73dc246c0c9657e72d1a8b2eb4bc1b96a842354813ea69409e4d9420410c
MD5 cadcc80b93d2b298cf30ac6e24ddbcf5
BLAKE2b-256 450531906573393428a7f4a8140f0a96499b742a954c0262e370f9f35cf35247

See more details on using hashes here.

Provenance

The following attestation bundles were made for annoy_mm-1.17.3-cp311-cp311-win_amd64.whl:

Publisher: publish.yml on mathematicalmichael/annoy

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

File details

Details for the file annoy_mm-1.17.3-cp311-cp311-win32.whl.

File metadata

  • Download URL: annoy_mm-1.17.3-cp311-cp311-win32.whl
  • Upload date:
  • Size: 46.5 kB
  • Tags: CPython 3.11, Windows x86
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for annoy_mm-1.17.3-cp311-cp311-win32.whl
Algorithm Hash digest
SHA256 f8eb8532ccc1c2a3d7ff3abd1036b5f04bc859898a7a1113b020b7ac128a1d77
MD5 e09269e994cb30d320ae400f69007474
BLAKE2b-256 8783428b39a2baae2232e097216ac50db266f644019f704260bd833b461ca5d7

See more details on using hashes here.

Provenance

The following attestation bundles were made for annoy_mm-1.17.3-cp311-cp311-win32.whl:

Publisher: publish.yml on mathematicalmichael/annoy

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

File details

Details for the file annoy_mm-1.17.3-cp311-cp311-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for annoy_mm-1.17.3-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 0406f1b4e06eeda5897b0cecf5081d44d74841d48355baf6d0c777f1e4a83954
MD5 2eb0ef5f5779a3487725d52033aa668d
BLAKE2b-256 465854dae4b0e0c595384bafb023e9626bf0705c0dea3161dcb45d42ef3f2cc6

See more details on using hashes here.

File details

Details for the file annoy_mm-1.17.3-cp311-cp311-musllinux_1_2_i686.whl.

File metadata

File hashes

Hashes for annoy_mm-1.17.3-cp311-cp311-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 1fa3a6e3c002611ea77c6ad0e2d1847736ffade1635e10cd18eadcc09bc740ea
MD5 53ca57fb8b4fed773b21ccc892560da3
BLAKE2b-256 b959a5a862eba111dea66236339d43f058b0acee42b0002f77ddf456462a3408

See more details on using hashes here.

File details

Details for the file annoy_mm-1.17.3-cp311-cp311-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for annoy_mm-1.17.3-cp311-cp311-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 d823aabe1052237aca1768be38ab83d56fb5f04a344e28bd40ade478381c273f
MD5 93c34e709d9e4486367c5617969cad5a
BLAKE2b-256 f721a0d687a13da4647e098a8bb69cc2d2642c58b4eb8b7f70ae32f1f36110cc

See more details on using hashes here.

File details

Details for the file annoy_mm-1.17.3-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for annoy_mm-1.17.3-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 4b913d22a7189628c21605ea4b61983bcc701ee443bf52b551f79a0c7b9e164c
MD5 7f05105505e89beb649afdced156ad2a
BLAKE2b-256 169c12cc8f8e2f925a2277d52e0f30afd8c45226f6aac62a99bfcd6c42a23f26

See more details on using hashes here.

File details

Details for the file annoy_mm-1.17.3-cp311-cp311-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for annoy_mm-1.17.3-cp311-cp311-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 aa14cbdf58211eb361a5db909d9131e54d451811a9667af41dffc76aa1b99886
MD5 3b39f8d8cb4af7390dd90f190bd7bd97
BLAKE2b-256 61e7ad6faf665f0d1e27e11736bcff3ae1472998d956be421ca94826f448fd23

See more details on using hashes here.

File details

Details for the file annoy_mm-1.17.3-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for annoy_mm-1.17.3-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 b00117b30dcd8c4b80700c4d96fe6ce951f999df0c22e2d79228a7fe4e92551d
MD5 07e1cba0b89981bd151a9af9593e6e63
BLAKE2b-256 2b71c94d2991ef68672275aede807f29c72049dae83f331263363f6cf618fc0c

See more details on using hashes here.

File details

Details for the file annoy_mm-1.17.3-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for annoy_mm-1.17.3-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 d776bef651ce63d4ad206c6638d6785bd9a38a2ee046e1ab873a3358ecc00109
MD5 c0f6212435fd041cf7e74a92749b7f70
BLAKE2b-256 6a72e3c0d6eda608fd8569739ca0707e7895a51618a83a092361071dd5994973

See more details on using hashes here.

Provenance

The following attestation bundles were made for annoy_mm-1.17.3-cp311-cp311-macosx_11_0_arm64.whl:

Publisher: publish.yml on mathematicalmichael/annoy

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

File details

Details for the file annoy_mm-1.17.3-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: annoy_mm-1.17.3-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 54.4 kB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for annoy_mm-1.17.3-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 84d5b67634a2a624800bb23ee41266347704fd25ebe4faca2994c6b40d9e6c88
MD5 4a28aeeff18f40cd0df36a1d2bbf5dd1
BLAKE2b-256 7fa0d897bc3e9b529501ae2566f60415ad560ff87efdc6f4bf3e3e6fc027a0fb

See more details on using hashes here.

Provenance

The following attestation bundles were made for annoy_mm-1.17.3-cp310-cp310-win_amd64.whl:

Publisher: publish.yml on mathematicalmichael/annoy

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

File details

Details for the file annoy_mm-1.17.3-cp310-cp310-win32.whl.

File metadata

  • Download URL: annoy_mm-1.17.3-cp310-cp310-win32.whl
  • Upload date:
  • Size: 46.5 kB
  • Tags: CPython 3.10, Windows x86
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for annoy_mm-1.17.3-cp310-cp310-win32.whl
Algorithm Hash digest
SHA256 21921445ee0ec1ce4f1406a83360ba492b67c29215d669103b445adcff55604a
MD5 f3296dd12fe3d14a3a981bd0e077df36
BLAKE2b-256 f00a9ce2e255e6ab331cf8a0eeac6020e33c8a5a0a7b70f0610dee5bb97851e7

See more details on using hashes here.

Provenance

The following attestation bundles were made for annoy_mm-1.17.3-cp310-cp310-win32.whl:

Publisher: publish.yml on mathematicalmichael/annoy

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

File details

Details for the file annoy_mm-1.17.3-cp310-cp310-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for annoy_mm-1.17.3-cp310-cp310-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 bdab006df7b2d545965db17b25dad7baa100e3c070cb2d172ebd62d721f67c14
MD5 ca1c7fd12697966a02d1f20a93d050ff
BLAKE2b-256 31d2250a8910c3c56b27e3c41052ede0e1590598dfb225cfcf598d46fd431ce7

See more details on using hashes here.

File details

Details for the file annoy_mm-1.17.3-cp310-cp310-musllinux_1_2_i686.whl.

File metadata

File hashes

Hashes for annoy_mm-1.17.3-cp310-cp310-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 8fb739b3d659ac6b9bd74b30443447ce110651cb22fef3470b1d410853cfbbdd
MD5 9b07742262736b89d61faa3c041ff2fa
BLAKE2b-256 32c420a199c6240be5fda4d50f37cea093d1c2542bf76eafd395d3edf026395a

See more details on using hashes here.

File details

Details for the file annoy_mm-1.17.3-cp310-cp310-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for annoy_mm-1.17.3-cp310-cp310-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 87d46971b951088375c3038fbf0ec9005fb2bf5cb6a9fa8be17522e1e906ec34
MD5 38f5e162eaa5caf68a0cef8ea3e11558
BLAKE2b-256 f4ce576c6b454c3f0fe72d7474b68e8917fc96ec6690356efbadef2dae163540

See more details on using hashes here.

File details

Details for the file annoy_mm-1.17.3-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for annoy_mm-1.17.3-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 b479923fc5eec52ef4f287671b7160cac0b3e7618b342d50db4fab819d2a4c11
MD5 2d7a0b0659be179ebed461c64c258b5e
BLAKE2b-256 fb418f8ba60e3cbbfcf33d813d80819bbd0bde9b23fd5ffd5dd0482530b758fe

See more details on using hashes here.

File details

Details for the file annoy_mm-1.17.3-cp310-cp310-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for annoy_mm-1.17.3-cp310-cp310-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 cf98633e96ad0adf6f04d5b924a1d10ade07c06bde22b5c90f8368afbbf0a7a2
MD5 b6a5397a42aff9f9377077c5cdb0c6ac
BLAKE2b-256 ac5e9b818e1d1239a336123bee9687155859c750ac554927c33b1e850dd80457

See more details on using hashes here.

File details

Details for the file annoy_mm-1.17.3-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for annoy_mm-1.17.3-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 8aa38d3e4f847835357ef28585200c703da5dbb3dd8812bce7ee405e54e3b6c4
MD5 053ee0dbbc71f37c18d87550c4726e0d
BLAKE2b-256 b5c8ec8844f540085b151cf48c708b908576a31749059679b60d107728c49c85

See more details on using hashes here.

File details

Details for the file annoy_mm-1.17.3-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for annoy_mm-1.17.3-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 70e01d28978a6fde6da72485bd4e4fb6a1c91bba387fbde3b1f104e83fb43c26
MD5 8ede5476d71f8fe0ecf8415852188899
BLAKE2b-256 a7dbd26dc2ef2ad5744fe882fa4346fe70fe4b3af685c93fcf33cc0992a1156d

See more details on using hashes here.

Provenance

The following attestation bundles were made for annoy_mm-1.17.3-cp310-cp310-macosx_11_0_arm64.whl:

Publisher: publish.yml on mathematicalmichael/annoy

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

File details

Details for the file annoy_mm-1.17.3-cp39-cp39-win_amd64.whl.

File metadata

  • Download URL: annoy_mm-1.17.3-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 54.5 kB
  • Tags: CPython 3.9, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for annoy_mm-1.17.3-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 a03912cfdbab064e110757aa59d4749ee0c1c409ef003ebfbd13cc99081d642c
MD5 926c86cab9f14fb738992d78ae7aebdf
BLAKE2b-256 7df46ae3675724f0d6716b21b7b1845fd0e39be69c2d6dfa525c4792e32fb054

See more details on using hashes here.

Provenance

The following attestation bundles were made for annoy_mm-1.17.3-cp39-cp39-win_amd64.whl:

Publisher: publish.yml on mathematicalmichael/annoy

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

File details

Details for the file annoy_mm-1.17.3-cp39-cp39-win32.whl.

File metadata

  • Download URL: annoy_mm-1.17.3-cp39-cp39-win32.whl
  • Upload date:
  • Size: 46.5 kB
  • Tags: CPython 3.9, Windows x86
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for annoy_mm-1.17.3-cp39-cp39-win32.whl
Algorithm Hash digest
SHA256 c4c6e7b016628345cfa537297f36615dd5abbf7e6ebb557792561b95217999db
MD5 151bb7fded53b534ad0daf5b7e1d5f07
BLAKE2b-256 f0bb1817cf63f75a2a504b84c0ce48d5fabcda79e1826b524c27ea5d9b251551

See more details on using hashes here.

Provenance

The following attestation bundles were made for annoy_mm-1.17.3-cp39-cp39-win32.whl:

Publisher: publish.yml on mathematicalmichael/annoy

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

File details

Details for the file annoy_mm-1.17.3-cp39-cp39-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for annoy_mm-1.17.3-cp39-cp39-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 45ee6feebf5f98c034ee58a2dc5f0e6100c3bb7dfcc8ed64a0486271d7603ffd
MD5 b1f9c49c1c4a8cb8e8fbd4bd9c63e869
BLAKE2b-256 1dc6cda88c2b01610e24948ba69e159cca054945450ccd5196c1da03cdde4742

See more details on using hashes here.

File details

Details for the file annoy_mm-1.17.3-cp39-cp39-musllinux_1_2_i686.whl.

File metadata

File hashes

Hashes for annoy_mm-1.17.3-cp39-cp39-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 8df3775aa97baa42137f660cb042548c88894e3693e3c501c48e3b904cc19a24
MD5 27ad62ccb0ed6fd1aec3ed79b5826cfc
BLAKE2b-256 b85106ff647ed8d140aa6d8bf8a737f5f284b808bd769be16cc396a70b8c271e

See more details on using hashes here.

File details

Details for the file annoy_mm-1.17.3-cp39-cp39-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for annoy_mm-1.17.3-cp39-cp39-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 8d84695bab34feb9da507f9430513ae6ee8801ef94086e15259ffcd24fc015c1
MD5 9dadee4a429ca5f0ceeeea06e0d1526f
BLAKE2b-256 571a30e60d557400039a61c8b3bf7a40318c2c865c2e02105bd411c43ab2d02b

See more details on using hashes here.

File details

Details for the file annoy_mm-1.17.3-cp39-cp39-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for annoy_mm-1.17.3-cp39-cp39-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 e9810cac1a30dbe35d7030b1fc0af4149c0f13c8ad30022e944823a74b5b19ac
MD5 632e4c875b1e7517e8e5b38dfa75012e
BLAKE2b-256 4a1c29fe69c8bf3c72b7c93718a41d294b793fa7249f82b3c83d4e9ae75475ba

See more details on using hashes here.

File details

Details for the file annoy_mm-1.17.3-cp39-cp39-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for annoy_mm-1.17.3-cp39-cp39-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 5b652058b47c54f8032766558ad7b0ab52e4101f74a0bdd7f966ec3509a1e7bf
MD5 357afda89a8c6ca405936427358667d4
BLAKE2b-256 c85510ba5013f5e4c09c7bf37cddbcb2c4d3608d8d62a74d00b5b31e7912a4b8

See more details on using hashes here.

File details

Details for the file annoy_mm-1.17.3-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for annoy_mm-1.17.3-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 ea83929d29d2064476693634e1200345fe9a2efab1109797dedd2eac1bf1dbdf
MD5 34bd3169e6d5558571c15381d77c95ff
BLAKE2b-256 e39a2b1b2b0bcbd25e5cabf6cd4719fb1c7dad570590b6980cc08d68a07e28f6

See more details on using hashes here.

File details

Details for the file annoy_mm-1.17.3-cp39-cp39-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for annoy_mm-1.17.3-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 f2f4127fbcd36f4fbba23bc7b0154f02b64f3f71bffbc868a0a0ac55e3481db4
MD5 938b6117d0f361db09cb2a472c13d7be
BLAKE2b-256 7589eda8991be6e546da522d5b5d4d570972008665d5321c5d8e50a85447b5c8

See more details on using hashes here.

Provenance

The following attestation bundles were made for annoy_mm-1.17.3-cp39-cp39-macosx_11_0_arm64.whl:

Publisher: publish.yml on mathematicalmichael/annoy

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

File details

Details for the file annoy_mm-1.17.3-cp38-cp38-win_amd64.whl.

File metadata

  • Download URL: annoy_mm-1.17.3-cp38-cp38-win_amd64.whl
  • Upload date:
  • Size: 54.4 kB
  • Tags: CPython 3.8, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for annoy_mm-1.17.3-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 e249617b253a4643f482939545a958ff28892f3ed366aae0236e34aa38965263
MD5 baf52364780cce13c72ae7f5b70bb00a
BLAKE2b-256 4eb84068e24730a3533ea5bbc4211df953064a9c70f9de083f0671a71baa66c1

See more details on using hashes here.

Provenance

The following attestation bundles were made for annoy_mm-1.17.3-cp38-cp38-win_amd64.whl:

Publisher: publish.yml on mathematicalmichael/annoy

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

File details

Details for the file annoy_mm-1.17.3-cp38-cp38-win32.whl.

File metadata

  • Download URL: annoy_mm-1.17.3-cp38-cp38-win32.whl
  • Upload date:
  • Size: 46.4 kB
  • Tags: CPython 3.8, Windows x86
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for annoy_mm-1.17.3-cp38-cp38-win32.whl
Algorithm Hash digest
SHA256 9801d39d565369f509d80cd734ddea95e12deed68057cc159396d66c8d69f007
MD5 4d1f2d0b4f45033cc08b56a48adae3ab
BLAKE2b-256 7c98f7b994ce480795510a460207fb8809d071d55d344f59bf92083d98e170ba

See more details on using hashes here.

Provenance

The following attestation bundles were made for annoy_mm-1.17.3-cp38-cp38-win32.whl:

Publisher: publish.yml on mathematicalmichael/annoy

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

File details

Details for the file annoy_mm-1.17.3-cp38-cp38-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for annoy_mm-1.17.3-cp38-cp38-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 e41b840542da45a6e9667fb7149de137577d48164011c676d1db472c9eec2de0
MD5 1e52479a77e9481638a80bfcb78587b7
BLAKE2b-256 5dd1089bf938dece80be8673986c9cc3c8364ffaf03d0d0cd438794c1ae003fa

See more details on using hashes here.

File details

Details for the file annoy_mm-1.17.3-cp38-cp38-musllinux_1_2_i686.whl.

File metadata

File hashes

Hashes for annoy_mm-1.17.3-cp38-cp38-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 af9e49e7dd3940b6e92f679a0ceb81a572d0ab9f7c19b8033234584343ed69f7
MD5 868f14db731bbd0d773804133895a369
BLAKE2b-256 e50df19427f1bb080312989c3e044d13cb6eac21de052a5d755abf0156a29164

See more details on using hashes here.

File details

Details for the file annoy_mm-1.17.3-cp38-cp38-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for annoy_mm-1.17.3-cp38-cp38-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 4ead7dff4aa2637221514ebac7667e57f67377469729a87dfec79667a2b17feb
MD5 cd1f88bb02c9e31b50ad10410c8a948b
BLAKE2b-256 0a949dc3605ceb274274cb2d3fee0538a50010edd8b94a405e79290995210c8f

See more details on using hashes here.

File details

Details for the file annoy_mm-1.17.3-cp38-cp38-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for annoy_mm-1.17.3-cp38-cp38-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 18cdcd4e6f649cdf9aa52830a3b3bdab13b6b4d081ef4d4728dbd204083f49a4
MD5 f862af7ad2ecb29f0bce80b24e4a0f1c
BLAKE2b-256 d3cc2909563d524633c8b4e79f821b936774bdb74daca062834c720255c4180b

See more details on using hashes here.

File details

Details for the file annoy_mm-1.17.3-cp38-cp38-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for annoy_mm-1.17.3-cp38-cp38-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 0c42e1548213b069cde7c97ca4dbe054c4c19713d6df4c0bda7000261c8d608d
MD5 58106be11f8f1343f9c6807d607fe1cc
BLAKE2b-256 3322ef0659d079845a53702aa0bd336615cbe8bc30c12cd892e134ada3ef745e

See more details on using hashes here.

File details

Details for the file annoy_mm-1.17.3-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for annoy_mm-1.17.3-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 9ae5d2f8f6b7c8e2b6a6fda3b412145c502379a1445d82f1f9d5aff407cf3059
MD5 da44b21bda90caed235a5e8355493c0b
BLAKE2b-256 07e975352c048708438a68c1667d8030055d911b7358b8f18998291347e36ec4

See more details on using hashes here.

File details

Details for the file annoy_mm-1.17.3-cp38-cp38-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for annoy_mm-1.17.3-cp38-cp38-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 18a689e87a56339efc0d74deaa78f48fdd88e674e022d1f91a5c7f2b34b053d2
MD5 852b155f22adc1ec3c16c36e42beb8be
BLAKE2b-256 226fa1dcfd6ff9605f60177248a1a31c52c2ca706f31ddc801fd46326d18d6c5

See more details on using hashes here.

Provenance

The following attestation bundles were made for annoy_mm-1.17.3-cp38-cp38-macosx_11_0_arm64.whl:

Publisher: publish.yml on mathematicalmichael/annoy

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