# Evalica, your favourite evaluation toolkit
[![Evalica](https://raw.githubusercontent.com/dustalov/evalica/master/Evalica.svg)](https://github.com/dustalov/evalica)
[![Tests][github_tests_badge]][github_tests_link]
[![Read the Docs][rtfd_badge]][rtfd_link]
[![PyPI Version][pypi_badge]][pypi_link]
[![Anaconda.org][conda_badge]][conda_link]
[![Codecov][codecov_badge]][codecov_link]
[![CodSpeed Badge][codspeed_badge]][codspeed_link]
[github_tests_badge]: https://github.com/dustalov/evalica/actions/workflows/test.yml/badge.svg?branch=master
[github_tests_link]: https://github.com/dustalov/evalica/actions/workflows/test.yml
[rtfd_badge]: https://readthedocs.org/projects/evalica/badge/
[rtfd_link]: https://evalica.readthedocs.io/
[pypi_badge]: https://badge.fury.io/py/evalica.svg
[pypi_link]: https://pypi.python.org/pypi/evalica
[conda_badge]: https://anaconda.org/conda-forge/evalica/badges/version.svg
[conda_link]: https://anaconda.org/conda-forge/evalica
[codecov_badge]: https://codecov.io/gh/dustalov/evalica/branch/master/graph/badge.svg
[codecov_link]: https://codecov.io/gh/dustalov/evalica
[codspeed_badge]: https://img.shields.io/endpoint?url=https://codspeed.io/badge.json
[codspeed_link]: https://codspeed.io/dustalov/evalica
**Evalica** [ɛˈʋalit͡sa] (eh-vah-lee-tsah) is a Python library that transforms pairwise comparisons into ranked lists of items. It offers convenient high-performant Rust implementations of the corresponding methods via [PyO3](https://pyo3.rs/), and additionally provides naïve Python code for most of them. Evalica is fully compatible with [NumPy](https://numpy.org/) arrays and [pandas](https://pandas.pydata.org/) data frames.
- [Tutorial](https://dustalov.github.io/evalica/) (and [Tutorial.ipynb](Tutorial.ipynb))
- [Chatbot-Arena.ipynb](Chatbot-Arena.ipynb) [![Open in Colab][colab_badge]][colab_link] [![Binder][binder_badge]][binder_link]
- [Pair2Rank](https://huggingface.co/spaces/dustalov/pair2rank)
[colab_badge]: https://colab.research.google.com/assets/colab-badge.svg
[colab_link]: https://colab.research.google.com/github/dustalov/evalica/blob/master/Chatbot-Arena.ipynb
[binder_badge]: https://mybinder.org/badge_logo.svg
[binder_link]: https://mybinder.org/v2/gh/dustalov/evalica/HEAD?labpath=Chatbot-Arena.ipynb
The logo was created using [Recraft](https://www.recraft.ai/).
> [!NOTE]
> The demonstration paper describing Evalica has been accepted at the [COLING 2025](https://coling2025.org/) conference in Abu Dhabi!
## Installation
- [pip](https://pip.pypa.io/): `pip install evalica`
- [Anaconda](https://docs.conda.io/en/latest/): `conda install conda-forge::evalica`
## Usage
Imagine that we would like to rank the different meals and have the following dataset of three comparisons produced by food experts.
| **Item X**| **Item Y** | **Winner** |
|:---:|:---:|:---:|
| `pizza` | `burger` | `x` |
| `burger` | `sushi` | `y` |
| `pizza` | `sushi` | `tie` |
Given this hypothetical example, Evalica takes these three columns and computes the outcome of the given pairwise comparison according to the chosen model. Note that the first argument is the column `Item X`, the second argument is the column `Item Y`, and the third argument corresponds to the column `Winner`.
```pycon
>>> from evalica import elo, Winner
>>> result = elo(
... ['pizza', 'burger', 'pizza'],
... ['burger', 'sushi', 'sushi'],
... [Winner.X, Winner.Y, Winner.Draw],
... )
>>> result.scores
pizza 1014.972058
burger 970.647200
sushi 1014.380742
Name: elo, dtype: float64
```
As a result, we obtain [Elo scores](https://en.wikipedia.org/wiki/Elo_rating_system) of our items. In this example, `pizza` was the most favoured item, `sushi` was the runner-up, and `burger` was the least preferred item.
| **Item**| **Score** |
|---|---:|
| `pizza` | 1014.97 |
| `burger` | 970.65 |
| `sushi` | 1014.38 |
## Command-Line Interface
Evalica also provides a simple command-line interface, allowing the use of these methods in shell scripts and for prototyping.
```console
$ evalica -i food.csv bradley-terry
item,score,rank
Tacos,2.509025136024378,1
Sushi,1.1011561298265815,2
Burger,0.8549063627182466,3
Pasta,0.7403814336665869,4
Pizza,0.5718366915548537,5
```
Refer to the [food.csv](food.csv) file as an input example.
## Web Application
Evalica has a built-in [Gradio](https://www.gradio.app/) application that can be launched as `python3 -m evalica.gradio`. Please ensure that the library was installed as `pip install evalica[gradio]`.
## Implemented Methods
| **Method** | **In Python** | **In Rust** |
|---|:---:|:---:|
| Counting | ✅ | ✅ |
| Average Win Rate | ✅ | ✅ |
| [Bradley–Terry] | ✅ | ✅ |
| [Elo] | ✅ | ✅ |
| [Eigenvalue] | ✅ | ✅ |
| [PageRank] | ✅ | ✅ |
| [Newman] | ✅ | ✅ |
<!-- Present: ✅ / Absent: ❌ -->
[Bradley–Terry]: https://doi.org/10.2307/2334029
[Elo]: https://isbnsearch.org/isbn/9780923891275
[Eigenvalue]: https://doi.org/10.1086/228631
[PageRank]: https://doi.org/10.1016/S0169-7552(98)00110-X
[Newman]: https://jmlr.org/papers/v24/22-1086.html
## Citation
Coming soon.
## Copyright
Copyright (c) 2024 [Dmitry Ustalov](https://github.com/dustalov). See [LICENSE](LICENSE) for details.
Raw data
{
"_id": null,
"home_page": null,
"name": "evalica",
"maintainer": null,
"docs_url": null,
"requires_python": "~=3.8",
"maintainer_email": null,
"keywords": "Bradley-Terry, Elo, PageRank, eigenvector, evaluation, leaderboard, pairwise comparisons, ranking, rating, statistics",
"author": null,
"author_email": null,
"download_url": "https://files.pythonhosted.org/packages/94/ff/b83cab8e7201244db967eaa62c0b1a52ed47a85911cb565d8f23d66699cb/evalica-0.3.2.tar.gz",
"platform": null,
"description": "# Evalica, your favourite evaluation toolkit\n\n[![Evalica](https://raw.githubusercontent.com/dustalov/evalica/master/Evalica.svg)](https://github.com/dustalov/evalica)\n\n[![Tests][github_tests_badge]][github_tests_link]\n[![Read the Docs][rtfd_badge]][rtfd_link]\n[![PyPI Version][pypi_badge]][pypi_link]\n[![Anaconda.org][conda_badge]][conda_link]\n[![Codecov][codecov_badge]][codecov_link]\n[![CodSpeed Badge][codspeed_badge]][codspeed_link]\n\n[github_tests_badge]: https://github.com/dustalov/evalica/actions/workflows/test.yml/badge.svg?branch=master\n[github_tests_link]: https://github.com/dustalov/evalica/actions/workflows/test.yml\n[rtfd_badge]: https://readthedocs.org/projects/evalica/badge/\n[rtfd_link]: https://evalica.readthedocs.io/\n[pypi_badge]: https://badge.fury.io/py/evalica.svg\n[pypi_link]: https://pypi.python.org/pypi/evalica\n[conda_badge]: https://anaconda.org/conda-forge/evalica/badges/version.svg\n[conda_link]: https://anaconda.org/conda-forge/evalica\n[codecov_badge]: https://codecov.io/gh/dustalov/evalica/branch/master/graph/badge.svg\n[codecov_link]: https://codecov.io/gh/dustalov/evalica\n[codspeed_badge]: https://img.shields.io/endpoint?url=https://codspeed.io/badge.json\n[codspeed_link]: https://codspeed.io/dustalov/evalica\n\n**Evalica** [ɛˈʋalit͡sa] (eh-vah-lee-tsah) is a Python library that transforms pairwise comparisons into ranked lists of items. It offers convenient high-performant Rust implementations of the corresponding methods via [PyO3](https://pyo3.rs/), and additionally provides na\u00efve Python code for most of them. Evalica is fully compatible with [NumPy](https://numpy.org/) arrays and [pandas](https://pandas.pydata.org/) data frames.\n\n- [Tutorial](https://dustalov.github.io/evalica/) (and [Tutorial.ipynb](Tutorial.ipynb))\n- [Chatbot-Arena.ipynb](Chatbot-Arena.ipynb) [![Open in Colab][colab_badge]][colab_link] [![Binder][binder_badge]][binder_link]\n- [Pair2Rank](https://huggingface.co/spaces/dustalov/pair2rank)\n\n[colab_badge]: https://colab.research.google.com/assets/colab-badge.svg\n[colab_link]: https://colab.research.google.com/github/dustalov/evalica/blob/master/Chatbot-Arena.ipynb\n[binder_badge]: https://mybinder.org/badge_logo.svg\n[binder_link]: https://mybinder.org/v2/gh/dustalov/evalica/HEAD?labpath=Chatbot-Arena.ipynb\n\nThe logo was created using [Recraft](https://www.recraft.ai/).\n\n> [!NOTE]\n> The demonstration paper describing Evalica has been accepted at the [COLING 2025](https://coling2025.org/) conference in Abu Dhabi!\n\n## Installation\n\n- [pip](https://pip.pypa.io/): `pip install evalica`\n- [Anaconda](https://docs.conda.io/en/latest/): `conda install conda-forge::evalica`\n\n## Usage\n\nImagine that we would like to rank the different meals and have the following dataset of three comparisons produced by food experts.\n\n| **Item X**| **Item Y** | **Winner** |\n|:---:|:---:|:---:|\n| `pizza` | `burger` | `x` |\n| `burger` | `sushi` | `y` |\n| `pizza` | `sushi` | `tie` |\n\nGiven this hypothetical example, Evalica takes these three columns and computes the outcome of the given pairwise comparison according to the chosen model. Note that the first argument is the column `Item X`, the second argument is the column `Item Y`, and the third argument corresponds to the column `Winner`.\n\n```pycon\n>>> from evalica import elo, Winner\n>>> result = elo(\n... ['pizza', 'burger', 'pizza'],\n... ['burger', 'sushi', 'sushi'],\n... [Winner.X, Winner.Y, Winner.Draw],\n... )\n>>> result.scores\npizza 1014.972058\nburger 970.647200\nsushi 1014.380742\nName: elo, dtype: float64\n```\n\nAs a result, we obtain [Elo scores](https://en.wikipedia.org/wiki/Elo_rating_system) of our items. In this example, `pizza` was the most favoured item, `sushi` was the runner-up, and `burger` was the least preferred item.\n\n| **Item**| **Score** |\n|---|---:|\n| `pizza` | 1014.97 |\n| `burger` | 970.65 |\n| `sushi` | 1014.38 |\n\n## Command-Line Interface\n\nEvalica also provides a simple command-line interface, allowing the use of these methods in shell scripts and for prototyping.\n\n```console\n$ evalica -i food.csv bradley-terry \nitem,score,rank\nTacos,2.509025136024378,1\nSushi,1.1011561298265815,2\nBurger,0.8549063627182466,3\nPasta,0.7403814336665869,4\nPizza,0.5718366915548537,5\n```\n\nRefer to the [food.csv](food.csv) file as an input example.\n\n## Web Application\n\nEvalica has a built-in [Gradio](https://www.gradio.app/) application that can be launched as `python3 -m evalica.gradio`. Please ensure that the library was installed as `pip install evalica[gradio]`.\n\n## Implemented Methods\n\n| **Method** | **In Python** | **In Rust** |\n|---|:---:|:---:|\n| Counting | ✅ | ✅ |\n| Average Win Rate | ✅ | ✅ |\n| [Bradley–Terry] | ✅ | ✅ |\n| [Elo] | ✅ | ✅ |\n| [Eigenvalue] | ✅ | ✅ |\n| [PageRank] | ✅ | ✅ |\n| [Newman] | ✅ | ✅ |\n\n<!-- Present: ✅ / Absent: ❌ -->\n\n[Bradley–Terry]: https://doi.org/10.2307/2334029\n[Elo]: https://isbnsearch.org/isbn/9780923891275\n[Eigenvalue]: https://doi.org/10.1086/228631\n[PageRank]: https://doi.org/10.1016/S0169-7552(98)00110-X\n[Newman]: https://jmlr.org/papers/v24/22-1086.html\n\n## Citation\n\nComing soon.\n\n## Copyright\n\nCopyright (c) 2024 [Dmitry Ustalov](https://github.com/dustalov). See [LICENSE](LICENSE) for details.\n\n",
"bugtrack_url": null,
"license": "Apache-2.0",
"summary": "Evalica, your favourite evaluation toolkit.",
"version": "0.3.2",
"project_urls": {
"Changelog": "https://github.com/dustalov/evalica/releases",
"Documentation": "https://evalica.readthedocs.io/",
"Download": "https://pypi.org/project/evalica/#files",
"Homepage": "https://github.com/dustalov/evalica",
"Issues": "https://github.com/dustalov/evalica/issues",
"Repository": "https://github.com/dustalov/evalica"
},
"split_keywords": [
"bradley-terry",
" elo",
" pagerank",
" eigenvector",
" evaluation",
" leaderboard",
" pairwise comparisons",
" ranking",
" rating",
" statistics"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "629b99424ca87fad766417ce626819c9a69ba8b8ede18e864fd106c1ac8f8148",
"md5": "427d4ef5dd5fef8d3688ed02b6efa7f6",
"sha256": "5e62b7f621f1efe34bce9f383c490a716e188fba10bd4e55ed42943ca15ce9b0"
},
"downloads": -1,
"filename": "evalica-0.3.2-cp38-abi3-macosx_10_12_x86_64.whl",
"has_sig": false,
"md5_digest": "427d4ef5dd5fef8d3688ed02b6efa7f6",
"packagetype": "bdist_wheel",
"python_version": "cp38",
"requires_python": "~=3.8",
"size": 341935,
"upload_time": "2024-12-11T21:18:15",
"upload_time_iso_8601": "2024-12-11T21:18:15.964383Z",
"url": "https://files.pythonhosted.org/packages/62/9b/99424ca87fad766417ce626819c9a69ba8b8ede18e864fd106c1ac8f8148/evalica-0.3.2-cp38-abi3-macosx_10_12_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "c21b4d5e6a46db4caba8078fe2bdaa60a1a892b40c82c1655cd207462dd61b7f",
"md5": "230e0bed31a27c96a34fbac12aeb67e2",
"sha256": "68168330cee3adc589a7f841006dddf00c1adf1d0874567f3ae70c6cecddb0a7"
},
"downloads": -1,
"filename": "evalica-0.3.2-cp38-abi3-macosx_11_0_arm64.whl",
"has_sig": false,
"md5_digest": "230e0bed31a27c96a34fbac12aeb67e2",
"packagetype": "bdist_wheel",
"python_version": "cp38",
"requires_python": "~=3.8",
"size": 323305,
"upload_time": "2024-12-11T21:18:18",
"upload_time_iso_8601": "2024-12-11T21:18:18.835841Z",
"url": "https://files.pythonhosted.org/packages/c2/1b/4d5e6a46db4caba8078fe2bdaa60a1a892b40c82c1655cd207462dd61b7f/evalica-0.3.2-cp38-abi3-macosx_11_0_arm64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "49aeb4621ef1487fa00b8950936dbc051599d342b05bd611fbe2d2b65ea31d51",
"md5": "c4d49c3bb467a6561bc11882c5ff8342",
"sha256": "f72613437c621bff9e6fb3329de19b67655edb691c87d90cfd6b438c6e53130d"
},
"downloads": -1,
"filename": "evalica-0.3.2-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
"has_sig": false,
"md5_digest": "c4d49c3bb467a6561bc11882c5ff8342",
"packagetype": "bdist_wheel",
"python_version": "cp38",
"requires_python": "~=3.8",
"size": 357112,
"upload_time": "2024-12-11T21:18:20",
"upload_time_iso_8601": "2024-12-11T21:18:20.459612Z",
"url": "https://files.pythonhosted.org/packages/49/ae/b4621ef1487fa00b8950936dbc051599d342b05bd611fbe2d2b65ea31d51/evalica-0.3.2-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "0abff3a1f3cd299660244c72cf6c47c1fb6eaf51520472d3a983539b38823d96",
"md5": "90d9638f3e5404c823dada17521b444c",
"sha256": "cf78a2a17c07d739dac0914cd67b1fe65aac19fed9d0582b7b25b962dff7d59f"
},
"downloads": -1,
"filename": "evalica-0.3.2-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"has_sig": false,
"md5_digest": "90d9638f3e5404c823dada17521b444c",
"packagetype": "bdist_wheel",
"python_version": "cp38",
"requires_python": "~=3.8",
"size": 369741,
"upload_time": "2024-12-11T21:18:24",
"upload_time_iso_8601": "2024-12-11T21:18:24.969280Z",
"url": "https://files.pythonhosted.org/packages/0a/bf/f3a1f3cd299660244c72cf6c47c1fb6eaf51520472d3a983539b38823d96/evalica-0.3.2-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "e8c1fb5246cfa8bb332cb3c4ccbbcd7a6c1cc208a34e6a6900c6d09caa4f5928",
"md5": "10ecdb3b2548025e8a6a8d0cf39a2e3f",
"sha256": "f813a6de330306c16656939a02b90ff776d43bff25bbd2980624605ef3e0d0ef"
},
"downloads": -1,
"filename": "evalica-0.3.2-cp38-abi3-manylinux_2_5_i686.manylinux1_i686.whl",
"has_sig": false,
"md5_digest": "10ecdb3b2548025e8a6a8d0cf39a2e3f",
"packagetype": "bdist_wheel",
"python_version": "cp38",
"requires_python": "~=3.8",
"size": 385594,
"upload_time": "2024-12-11T21:18:27",
"upload_time_iso_8601": "2024-12-11T21:18:27.412339Z",
"url": "https://files.pythonhosted.org/packages/e8/c1/fb5246cfa8bb332cb3c4ccbbcd7a6c1cc208a34e6a6900c6d09caa4f5928/evalica-0.3.2-cp38-abi3-manylinux_2_5_i686.manylinux1_i686.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "cacebcf62981ceecb99c1c2d640025a43d7c2181a5c57ec833b329d754793ce1",
"md5": "1abb2f8126da54bb8e5320494f9b40d5",
"sha256": "6db7032d4aa3cdbab2a8a85613bbf94d331805612867b6d78b7caa366d9d1b39"
},
"downloads": -1,
"filename": "evalica-0.3.2-cp38-abi3-musllinux_1_1_aarch64.whl",
"has_sig": false,
"md5_digest": "1abb2f8126da54bb8e5320494f9b40d5",
"packagetype": "bdist_wheel",
"python_version": "cp38",
"requires_python": "~=3.8",
"size": 536084,
"upload_time": "2024-12-11T21:18:30",
"upload_time_iso_8601": "2024-12-11T21:18:30.319476Z",
"url": "https://files.pythonhosted.org/packages/ca/ce/bcf62981ceecb99c1c2d640025a43d7c2181a5c57ec833b329d754793ce1/evalica-0.3.2-cp38-abi3-musllinux_1_1_aarch64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "7e3cb3910a23f5f9518bf9a4753957cf377ca8f6d252de05a9c4ff1ed79a1ec0",
"md5": "6bf8a85379cbce98fade4314085e24a7",
"sha256": "46eabb53735736a402ce79133889deb5a41fc685901de77a5c9a9d776d1819e1"
},
"downloads": -1,
"filename": "evalica-0.3.2-cp38-abi3-musllinux_1_1_x86_64.whl",
"has_sig": false,
"md5_digest": "6bf8a85379cbce98fade4314085e24a7",
"packagetype": "bdist_wheel",
"python_version": "cp38",
"requires_python": "~=3.8",
"size": 540069,
"upload_time": "2024-12-11T21:18:32",
"upload_time_iso_8601": "2024-12-11T21:18:32.991341Z",
"url": "https://files.pythonhosted.org/packages/7e/3c/b3910a23f5f9518bf9a4753957cf377ca8f6d252de05a9c4ff1ed79a1ec0/evalica-0.3.2-cp38-abi3-musllinux_1_1_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "8c57eab9d65c552996973b2fc7ae2bd8e539fb8c746c20f010d8b236aa43d026",
"md5": "bed3966633769f192f861c341b023daf",
"sha256": "b98562045573f0c7e89499a485304d4cf26eb9570c453d8db1ae6ff923b8ed2b"
},
"downloads": -1,
"filename": "evalica-0.3.2-cp38-abi3-win_amd64.whl",
"has_sig": false,
"md5_digest": "bed3966633769f192f861c341b023daf",
"packagetype": "bdist_wheel",
"python_version": "cp38",
"requires_python": "~=3.8",
"size": 230837,
"upload_time": "2024-12-11T21:18:35",
"upload_time_iso_8601": "2024-12-11T21:18:35.628993Z",
"url": "https://files.pythonhosted.org/packages/8c/57/eab9d65c552996973b2fc7ae2bd8e539fb8c746c20f010d8b236aa43d026/evalica-0.3.2-cp38-abi3-win_amd64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "d3d547709ec0b4c5eafc3e45f3accacb868e40749bb4f4b5a9d051f96646f9c0",
"md5": "9a26a6506bcf9fc6b1310a6da0290020",
"sha256": "aca7164d01319165a12b1ce79f3718251d05ca874f78ce2b1603836ccbc9c3e3"
},
"downloads": -1,
"filename": "evalica-0.3.2-pp310-pypy310_pp73-macosx_10_12_x86_64.whl",
"has_sig": false,
"md5_digest": "9a26a6506bcf9fc6b1310a6da0290020",
"packagetype": "bdist_wheel",
"python_version": "pp310",
"requires_python": "~=3.8",
"size": 341256,
"upload_time": "2024-12-11T21:18:37",
"upload_time_iso_8601": "2024-12-11T21:18:37.296967Z",
"url": "https://files.pythonhosted.org/packages/d3/d5/47709ec0b4c5eafc3e45f3accacb868e40749bb4f4b5a9d051f96646f9c0/evalica-0.3.2-pp310-pypy310_pp73-macosx_10_12_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "88f76b9bb7b04dc9fdfaa7fa028134efff0ddbc2af20b374da8f7784504fdf34",
"md5": "a0ffbd41ed6ee8d3f7ccfd6d1388614f",
"sha256": "a63292531fa39b9d8badd959bee0ee8e165255e4fcc9a02ddea4d573e5822348"
},
"downloads": -1,
"filename": "evalica-0.3.2-pp310-pypy310_pp73-macosx_11_0_arm64.whl",
"has_sig": false,
"md5_digest": "a0ffbd41ed6ee8d3f7ccfd6d1388614f",
"packagetype": "bdist_wheel",
"python_version": "pp310",
"requires_python": "~=3.8",
"size": 322643,
"upload_time": "2024-12-11T21:18:38",
"upload_time_iso_8601": "2024-12-11T21:18:38.820506Z",
"url": "https://files.pythonhosted.org/packages/88/f7/6b9bb7b04dc9fdfaa7fa028134efff0ddbc2af20b374da8f7784504fdf34/evalica-0.3.2-pp310-pypy310_pp73-macosx_11_0_arm64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "eebeec1b685cb8a2770334feda1ea1ee4ecd9a210a5a7333dc94abbe1a2cd734",
"md5": "88b9ea3e20e5ac1d1bec399827d38904",
"sha256": "6b344759a643b1fc229993db43ff002b402f8b5d86e6c367ebe9ab6211a1d521"
},
"downloads": -1,
"filename": "evalica-0.3.2-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
"has_sig": false,
"md5_digest": "88b9ea3e20e5ac1d1bec399827d38904",
"packagetype": "bdist_wheel",
"python_version": "pp310",
"requires_python": "~=3.8",
"size": 356203,
"upload_time": "2024-12-11T21:18:42",
"upload_time_iso_8601": "2024-12-11T21:18:42.189817Z",
"url": "https://files.pythonhosted.org/packages/ee/be/ec1b685cb8a2770334feda1ea1ee4ecd9a210a5a7333dc94abbe1a2cd734/evalica-0.3.2-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "63a2b571ad078f89a9b184174b10afe1a8d87a2626aabe85f7928dd354f09413",
"md5": "28364519d1271ebceff84a572f4867ff",
"sha256": "db5cc088bb4e73f265989af5b698a8eff1dd11fe4f8cc6ce0a21dd02e24ad60f"
},
"downloads": -1,
"filename": "evalica-0.3.2-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"has_sig": false,
"md5_digest": "28364519d1271ebceff84a572f4867ff",
"packagetype": "bdist_wheel",
"python_version": "pp310",
"requires_python": "~=3.8",
"size": 368151,
"upload_time": "2024-12-11T21:18:45",
"upload_time_iso_8601": "2024-12-11T21:18:45.886013Z",
"url": "https://files.pythonhosted.org/packages/63/a2/b571ad078f89a9b184174b10afe1a8d87a2626aabe85f7928dd354f09413/evalica-0.3.2-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "127e71d31b8369b214054c85c4e6977ad44917cd2da691ad80c4a716972f83aa",
"md5": "4acb96d34f29e75f9146ee74677073e5",
"sha256": "3cb26e070ac41e0a978371919302f861c3bad019cd5e55871a23b70493f4f775"
},
"downloads": -1,
"filename": "evalica-0.3.2-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.whl",
"has_sig": false,
"md5_digest": "4acb96d34f29e75f9146ee74677073e5",
"packagetype": "bdist_wheel",
"python_version": "pp310",
"requires_python": "~=3.8",
"size": 386773,
"upload_time": "2024-12-11T21:18:48",
"upload_time_iso_8601": "2024-12-11T21:18:48.403660Z",
"url": "https://files.pythonhosted.org/packages/12/7e/71d31b8369b214054c85c4e6977ad44917cd2da691ad80c4a716972f83aa/evalica-0.3.2-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "abdc4231d9bed877a1fb25b54dbe3b7e164b3cd56e210bdd17930c45d7ca1384",
"md5": "0c053565f96e1fb0fa140f4351b15252",
"sha256": "3190393abd069f1d1e2ffc43a621159aec3aaa8af2a7f3553883a9d6946886aa"
},
"downloads": -1,
"filename": "evalica-0.3.2-pp310-pypy310_pp73-musllinux_1_1_aarch64.whl",
"has_sig": false,
"md5_digest": "0c053565f96e1fb0fa140f4351b15252",
"packagetype": "bdist_wheel",
"python_version": "pp310",
"requires_python": "~=3.8",
"size": 535118,
"upload_time": "2024-12-11T21:18:50",
"upload_time_iso_8601": "2024-12-11T21:18:50.496067Z",
"url": "https://files.pythonhosted.org/packages/ab/dc/4231d9bed877a1fb25b54dbe3b7e164b3cd56e210bdd17930c45d7ca1384/evalica-0.3.2-pp310-pypy310_pp73-musllinux_1_1_aarch64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "0b1fa14c662d446b632cbd42f96a2ebda9cfe86efc6fde25a820e2b6b745bce0",
"md5": "f72ebe3c66da69351b7c3ba3be74cdee",
"sha256": "5a03283cefafc17c257bf4df8f69ff542ee672baeb615e35853df4466beb760e"
},
"downloads": -1,
"filename": "evalica-0.3.2-pp310-pypy310_pp73-musllinux_1_1_x86_64.whl",
"has_sig": false,
"md5_digest": "f72ebe3c66da69351b7c3ba3be74cdee",
"packagetype": "bdist_wheel",
"python_version": "pp310",
"requires_python": "~=3.8",
"size": 538290,
"upload_time": "2024-12-11T21:18:52",
"upload_time_iso_8601": "2024-12-11T21:18:52.091221Z",
"url": "https://files.pythonhosted.org/packages/0b/1f/a14c662d446b632cbd42f96a2ebda9cfe86efc6fde25a820e2b6b745bce0/evalica-0.3.2-pp310-pypy310_pp73-musllinux_1_1_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "461a1056de76f8e808fffb0cf49755dc77ad06e233bb95091e4c38e8867e030a",
"md5": "a4fef9982b94fb11bc5842232426f4b8",
"sha256": "d888d35d43d7194ab08a7e886fb3faf7f63129c291314dea7bce641a35bd1cf1"
},
"downloads": -1,
"filename": "evalica-0.3.2-pp39-pypy39_pp73-macosx_10_12_x86_64.whl",
"has_sig": false,
"md5_digest": "a4fef9982b94fb11bc5842232426f4b8",
"packagetype": "bdist_wheel",
"python_version": "pp39",
"requires_python": "~=3.8",
"size": 342009,
"upload_time": "2024-12-11T21:18:53",
"upload_time_iso_8601": "2024-12-11T21:18:53.419735Z",
"url": "https://files.pythonhosted.org/packages/46/1a/1056de76f8e808fffb0cf49755dc77ad06e233bb95091e4c38e8867e030a/evalica-0.3.2-pp39-pypy39_pp73-macosx_10_12_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "0377eaed5e42075544c4679c9ebc2c7f86c19361f1215ef3f760d2a16785debe",
"md5": "4b98caf0601fee9e83038d14cbf4ba44",
"sha256": "172d680f30e1ad483556b181d1e4640277acfc4827df660663483e0070ecb539"
},
"downloads": -1,
"filename": "evalica-0.3.2-pp39-pypy39_pp73-macosx_11_0_arm64.whl",
"has_sig": false,
"md5_digest": "4b98caf0601fee9e83038d14cbf4ba44",
"packagetype": "bdist_wheel",
"python_version": "pp39",
"requires_python": "~=3.8",
"size": 322974,
"upload_time": "2024-12-11T21:18:57",
"upload_time_iso_8601": "2024-12-11T21:18:57.281528Z",
"url": "https://files.pythonhosted.org/packages/03/77/eaed5e42075544c4679c9ebc2c7f86c19361f1215ef3f760d2a16785debe/evalica-0.3.2-pp39-pypy39_pp73-macosx_11_0_arm64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "7fbd2c3db87d35f0224b9792ae40d5b685ff54b029ca0494b62d033727d6b588",
"md5": "f6df9fcd44d0146c3d5a24f102505cba",
"sha256": "cbc9012250ee400085448c6b323ccf12a3769d32ea9b467cd76dcc3b268d2399"
},
"downloads": -1,
"filename": "evalica-0.3.2-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
"has_sig": false,
"md5_digest": "f6df9fcd44d0146c3d5a24f102505cba",
"packagetype": "bdist_wheel",
"python_version": "pp39",
"requires_python": "~=3.8",
"size": 356965,
"upload_time": "2024-12-11T21:18:59",
"upload_time_iso_8601": "2024-12-11T21:18:59.870058Z",
"url": "https://files.pythonhosted.org/packages/7f/bd/2c3db87d35f0224b9792ae40d5b685ff54b029ca0494b62d033727d6b588/evalica-0.3.2-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "8efe732b1dcaf881e29f5d9c8cb9e1f4c9c586fea27f7da7971bafa36dcad8c7",
"md5": "ff2d6d360f5a5e5f5c5c06b41f878f31",
"sha256": "06a4b206308b311750caa9fd6d89786229c01c8e72bf693b5cd744730957c3d9"
},
"downloads": -1,
"filename": "evalica-0.3.2-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"has_sig": false,
"md5_digest": "ff2d6d360f5a5e5f5c5c06b41f878f31",
"packagetype": "bdist_wheel",
"python_version": "pp39",
"requires_python": "~=3.8",
"size": 369991,
"upload_time": "2024-12-11T21:19:03",
"upload_time_iso_8601": "2024-12-11T21:19:03.177339Z",
"url": "https://files.pythonhosted.org/packages/8e/fe/732b1dcaf881e29f5d9c8cb9e1f4c9c586fea27f7da7971bafa36dcad8c7/evalica-0.3.2-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "90f9fa656d75b7c9e0b32e769d57ba9137ca8f8c1e1ab042432ca4f5dbc2be66",
"md5": "c4be0f52e2a94438e3286c6a1554d4b4",
"sha256": "00e3d97a076e4d7b27c6d2a1d66dd2719c3c12b55fbb1cd400fee101aa1f5aa1"
},
"downloads": -1,
"filename": "evalica-0.3.2-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.whl",
"has_sig": false,
"md5_digest": "c4be0f52e2a94438e3286c6a1554d4b4",
"packagetype": "bdist_wheel",
"python_version": "pp39",
"requires_python": "~=3.8",
"size": 385508,
"upload_time": "2024-12-11T21:19:05",
"upload_time_iso_8601": "2024-12-11T21:19:05.625618Z",
"url": "https://files.pythonhosted.org/packages/90/f9/fa656d75b7c9e0b32e769d57ba9137ca8f8c1e1ab042432ca4f5dbc2be66/evalica-0.3.2-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "d05fef43024fe38d1fa9a18b2c135c60b347e7cf8f2d2f8c0f6c996cb7d37f05",
"md5": "fb102cda0401624d0a8a853e93e1eaa0",
"sha256": "e0ed7e931b1f250f4f9ec142322b4266d71c18db5f738ec05cedbce16824d235"
},
"downloads": -1,
"filename": "evalica-0.3.2-pp39-pypy39_pp73-musllinux_1_1_aarch64.whl",
"has_sig": false,
"md5_digest": "fb102cda0401624d0a8a853e93e1eaa0",
"packagetype": "bdist_wheel",
"python_version": "pp39",
"requires_python": "~=3.8",
"size": 535792,
"upload_time": "2024-12-11T21:19:07",
"upload_time_iso_8601": "2024-12-11T21:19:07.116609Z",
"url": "https://files.pythonhosted.org/packages/d0/5f/ef43024fe38d1fa9a18b2c135c60b347e7cf8f2d2f8c0f6c996cb7d37f05/evalica-0.3.2-pp39-pypy39_pp73-musllinux_1_1_aarch64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "4c6e97b9c3bae73154c301516aff511e7a907ce5b4aa8ac570f8067ed77ce0d8",
"md5": "16aa400ffb26ea5ed5210fcffc74e78b",
"sha256": "9460c9de931a6bb6ee367882aa1e4b9f77a8810a9ebfada16336775ea7fb33c9"
},
"downloads": -1,
"filename": "evalica-0.3.2-pp39-pypy39_pp73-musllinux_1_1_x86_64.whl",
"has_sig": false,
"md5_digest": "16aa400ffb26ea5ed5210fcffc74e78b",
"packagetype": "bdist_wheel",
"python_version": "pp39",
"requires_python": "~=3.8",
"size": 540284,
"upload_time": "2024-12-11T21:19:09",
"upload_time_iso_8601": "2024-12-11T21:19:09.294825Z",
"url": "https://files.pythonhosted.org/packages/4c/6e/97b9c3bae73154c301516aff511e7a907ce5b4aa8ac570f8067ed77ce0d8/evalica-0.3.2-pp39-pypy39_pp73-musllinux_1_1_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "94ffb83cab8e7201244db967eaa62c0b1a52ed47a85911cb565d8f23d66699cb",
"md5": "52e46aadcd3ee8cbb9a6aa6e6f8fd3e2",
"sha256": "44de2a2c4b742ca4a82c9fa032dec0ce6167e78e159a8c07dbb4268cf7e857b5"
},
"downloads": -1,
"filename": "evalica-0.3.2.tar.gz",
"has_sig": false,
"md5_digest": "52e46aadcd3ee8cbb9a6aa6e6f8fd3e2",
"packagetype": "sdist",
"python_version": "source",
"requires_python": "~=3.8",
"size": 32269,
"upload_time": "2024-12-11T21:19:10",
"upload_time_iso_8601": "2024-12-11T21:19:10.616651Z",
"url": "https://files.pythonhosted.org/packages/94/ff/b83cab8e7201244db967eaa62c0b1a52ed47a85911cb565d8f23d66699cb/evalica-0.3.2.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-12-11 21:19:10",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "dustalov",
"github_project": "evalica",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "evalica"
}