annime


Nameannime JSON
Version 0.1.0.1 PyPI version JSON
download
home_pagehttps://github.com/Azherhs/Annime
SummaryANN-interface library
upload_time2024-06-20 11:54:28
maintainerNone
docs_urlNone
authorAvgustin Zhugalov
requires_python>=3.6
licenseMIT
keywords ann interface metrics
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # Annime Project

## Overview

Annime (Approximate Nearest Neighbors Interface for Metrics Evaluation) is an open-source library that provides a
unified interface for various Approximate Nearest Neighbor (ANN) implementations. It supports multiple ANN libraries
including Annoy, NGT, NMSLIB, Faiss, Hnswlib, ScaNN, and Datasketch. This library is designed to simplify the process of
benchmarking and evaluating the performance of different ANN algorithms.

## Features

- Unified interface for multiple ANN libraries
- Easy integration and usage
- Comprehensive set of methods for building, querying, and managing ANN indices
- Benchmarking and performance evaluation tools

## Installation

To install Annime, clone the repository and install the dependencies using `pip`:

```shell
git clone https://github.com/Azherhs/Annime.git
cd Annime
pip install -r requirements.txt
```

or

```shell
pip install annime
```

## Usage

To use the Annime library, import the specific ANN interface you need and follow the provided examples:

Example with Annoy

```python

from annime.annoy_int import AnnoyANN

# Initialize the Annoy interface
annoy_ann = AnnoyANN(dim=100, metric='euclidean')

# Build the index with your data
data_points = ...  # Your ndarray data points
annoy_ann.build_index(data_points)

# Query the index
query_point = ...  # Your query point
results = annoy_ann.query(query_point, k=5)
print(results)
```

Example with NMSLIB

```python

from annime.nmslib_int import NmslibANN

# Initialize the NMSLIB interface
nmslib_ann = NmslibANN(space='l2', method='hnsw')

# Build the index with your data
data_points = ...  # Your ndarray data points
nmslib_ann.build_index(data_points)

# Query the index
query_point = ...  # Your query point
results = nmslib_ann.query(query_point, k=5)
print(results)
```

Running Tests

To ensure that everything is working correctly, you can run the provided tests using pytest:

```shell

pytest
```

## Supported Libraries

Annime currently supports the following ANN libraries:

- Annoy
- Datasketch
- Faiss
- Hnswlib
- NGT
- NMSLIB
- ScaNN

## Contributing

We welcome contributions from the community! If you would like to contribute to Annime, please follow these steps:

- Fork the repository.
- Create a new branch for your feature or bugfix.
- Implement your changes and commit them to your branch.
- Submit a pull request detailing your changes.

Please ensure your code adheres to the project's coding standards and includes appropriate tests.

## License

This project is licensed under the MIT License. See the LICENSE file for more details.

## Contact

For any inquiries or issues, please open an issue on the GitHub repository.

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/Azherhs/Annime",
    "name": "annime",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.6",
    "maintainer_email": null,
    "keywords": "ann interface metrics",
    "author": "Avgustin Zhugalov",
    "author_email": "avgustinalex@yandex.ru",
    "download_url": "https://files.pythonhosted.org/packages/d1/8c/3646ba10bbdf3a5e1e6e2d35bbc2f47ea5d76972b7d737ca1d4b0010cbbd/annime-0.1.0.1.tar.gz",
    "platform": null,
    "description": "# Annime Project\r\n\r\n## Overview\r\n\r\nAnnime (Approximate Nearest Neighbors Interface for Metrics Evaluation) is an open-source library that provides a\r\nunified interface for various Approximate Nearest Neighbor (ANN) implementations. It supports multiple ANN libraries\r\nincluding Annoy, NGT, NMSLIB, Faiss, Hnswlib, ScaNN, and Datasketch. This library is designed to simplify the process of\r\nbenchmarking and evaluating the performance of different ANN algorithms.\r\n\r\n## Features\r\n\r\n- Unified interface for multiple ANN libraries\r\n- Easy integration and usage\r\n- Comprehensive set of methods for building, querying, and managing ANN indices\r\n- Benchmarking and performance evaluation tools\r\n\r\n## Installation\r\n\r\nTo install Annime, clone the repository and install the dependencies using `pip`:\r\n\r\n```shell\r\ngit clone https://github.com/Azherhs/Annime.git\r\ncd Annime\r\npip install -r requirements.txt\r\n```\r\n\r\nor\r\n\r\n```shell\r\npip install annime\r\n```\r\n\r\n## Usage\r\n\r\nTo use the Annime library, import the specific ANN interface you need and follow the provided examples:\r\n\r\nExample with Annoy\r\n\r\n```python\r\n\r\nfrom annime.annoy_int import AnnoyANN\r\n\r\n# Initialize the Annoy interface\r\nannoy_ann = AnnoyANN(dim=100, metric='euclidean')\r\n\r\n# Build the index with your data\r\ndata_points = ...  # Your ndarray data points\r\nannoy_ann.build_index(data_points)\r\n\r\n# Query the index\r\nquery_point = ...  # Your query point\r\nresults = annoy_ann.query(query_point, k=5)\r\nprint(results)\r\n```\r\n\r\nExample with NMSLIB\r\n\r\n```python\r\n\r\nfrom annime.nmslib_int import NmslibANN\r\n\r\n# Initialize the NMSLIB interface\r\nnmslib_ann = NmslibANN(space='l2', method='hnsw')\r\n\r\n# Build the index with your data\r\ndata_points = ...  # Your ndarray data points\r\nnmslib_ann.build_index(data_points)\r\n\r\n# Query the index\r\nquery_point = ...  # Your query point\r\nresults = nmslib_ann.query(query_point, k=5)\r\nprint(results)\r\n```\r\n\r\nRunning Tests\r\n\r\nTo ensure that everything is working correctly, you can run the provided tests using pytest:\r\n\r\n```shell\r\n\r\npytest\r\n```\r\n\r\n## Supported Libraries\r\n\r\nAnnime currently supports the following ANN libraries:\r\n\r\n- Annoy\r\n- Datasketch\r\n- Faiss\r\n- Hnswlib\r\n- NGT\r\n- NMSLIB\r\n- ScaNN\r\n\r\n## Contributing\r\n\r\nWe welcome contributions from the community! If you would like to contribute to Annime, please follow these steps:\r\n\r\n- Fork the repository.\r\n- Create a new branch for your feature or bugfix.\r\n- Implement your changes and commit them to your branch.\r\n- Submit a pull request detailing your changes.\r\n\r\nPlease ensure your code adheres to the project's coding standards and includes appropriate tests.\r\n\r\n## License\r\n\r\nThis project is licensed under the MIT License. See the LICENSE file for more details.\r\n\r\n## Contact\r\n\r\nFor any inquiries or issues, please open an issue on the GitHub repository.\r\n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "ANN-interface library",
    "version": "0.1.0.1",
    "project_urls": {
        "Homepage": "https://github.com/Azherhs/Annime"
    },
    "split_keywords": [
        "ann",
        "interface",
        "metrics"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "eb2c8b7fb6a1a8c1316995253f640bb9e792852c36ce16467e1a26399ffa2843",
                "md5": "d41c31823b8fa8edd93e0889f98ca1cc",
                "sha256": "4a92722f02e9a1abfeec90c6131ed667c2a3b7b409af6ca1665aaf2b2f33d39f"
            },
            "downloads": -1,
            "filename": "annime-0.1.0.1-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "d41c31823b8fa8edd93e0889f98ca1cc",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.6",
            "size": 91229,
            "upload_time": "2024-06-20T11:54:26",
            "upload_time_iso_8601": "2024-06-20T11:54:26.418691Z",
            "url": "https://files.pythonhosted.org/packages/eb/2c/8b7fb6a1a8c1316995253f640bb9e792852c36ce16467e1a26399ffa2843/annime-0.1.0.1-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "d18c3646ba10bbdf3a5e1e6e2d35bbc2f47ea5d76972b7d737ca1d4b0010cbbd",
                "md5": "5b3b1964ca0a25fda5b5a8c1b65ded1f",
                "sha256": "a3312d90af67b97682c25db289a216adcf2fb58865ba1afd668fc8d8d0b4f26d"
            },
            "downloads": -1,
            "filename": "annime-0.1.0.1.tar.gz",
            "has_sig": false,
            "md5_digest": "5b3b1964ca0a25fda5b5a8c1b65ded1f",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.6",
            "size": 55694,
            "upload_time": "2024-06-20T11:54:28",
            "upload_time_iso_8601": "2024-06-20T11:54:28.389474Z",
            "url": "https://files.pythonhosted.org/packages/d1/8c/3646ba10bbdf3a5e1e6e2d35bbc2f47ea5d76972b7d737ca1d4b0010cbbd/annime-0.1.0.1.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-06-20 11:54:28",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "Azherhs",
    "github_project": "Annime",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": false,
    "requirements": [],
    "lcname": "annime"
}
        
Elapsed time: 0.48607s