evalica


Nameevalica JSON
Version 0.3.0 PyPI version JSON
download
home_pageNone
SummaryEvalica, your favourite evaluation toolkit.
upload_time2024-10-11 18:43:02
maintainerNone
docs_urlNone
authorNone
requires_python~=3.8
licenseApache-2.0
keywords bradley-terry elo pagerank eigenvector evaluation leaderboard pairwise comparisons ranking rating statistics
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # 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/).

## 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: &#x2705; / Absent: &#x274C; -->

[Bradley&ndash;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

## 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/14/dd/ffe6c9b3fb9a39d2d90ec5ddd8cb4cf0cc0b28f7866ece5aa1f7fef45d12/evalica-0.3.0.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** [&#x025b;&#x02c8;&#x028b;alit&#x0361;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## 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 | &#x2705; | &#x2705; |\n| Average Win Rate | &#x2705; | &#x2705; |\n| [Bradley&ndash;Terry] | &#x2705; | &#x2705; |\n| [Elo] | &#x2705; | &#x2705; |\n| [Eigenvalue] | &#x2705; | &#x2705; |\n| [PageRank] | &#x2705; | &#x2705; |\n| [Newman] | &#x2705; | &#x2705; |\n\n<!-- Present: &#x2705; / Absent: &#x274C; -->\n\n[Bradley&ndash;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## 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.0",
    "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": "b1ac15d87280d1e8deb0d8b7a47cfe69b73a8e40846735bede7e41fee24a823c",
                "md5": "c2003121189b3977b61d7b6ce53d61ef",
                "sha256": "01d509fff530f839256153101e0d69e97a686a28800b0b30b5bd818ebc10589c"
            },
            "downloads": -1,
            "filename": "evalica-0.3.0-cp38-abi3-macosx_10_12_x86_64.whl",
            "has_sig": false,
            "md5_digest": "c2003121189b3977b61d7b6ce53d61ef",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": "~=3.8",
            "size": 323667,
            "upload_time": "2024-10-11T18:42:30",
            "upload_time_iso_8601": "2024-10-11T18:42:30.260130Z",
            "url": "https://files.pythonhosted.org/packages/b1/ac/15d87280d1e8deb0d8b7a47cfe69b73a8e40846735bede7e41fee24a823c/evalica-0.3.0-cp38-abi3-macosx_10_12_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "7671e4bc77cfd99401fd60685267735091d9147c4defaf6a186f9adf4e6b5939",
                "md5": "3dbb4840c6e60a13b1c88e05cd381fe3",
                "sha256": "0771d48d4479ba0dd8e9b8a6e88761d88664657585923407a1a4f352eb7095fe"
            },
            "downloads": -1,
            "filename": "evalica-0.3.0-cp38-abi3-macosx_11_0_arm64.whl",
            "has_sig": false,
            "md5_digest": "3dbb4840c6e60a13b1c88e05cd381fe3",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": "~=3.8",
            "size": 307618,
            "upload_time": "2024-10-11T18:42:31",
            "upload_time_iso_8601": "2024-10-11T18:42:31.747493Z",
            "url": "https://files.pythonhosted.org/packages/76/71/e4bc77cfd99401fd60685267735091d9147c4defaf6a186f9adf4e6b5939/evalica-0.3.0-cp38-abi3-macosx_11_0_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "fe84165b8656618bae1794d73697ea19763faf1c58b6050e1b44a414f5a72437",
                "md5": "2180508635b09947355932f71e59598d",
                "sha256": "7ad276363e283e1219b8531a4e1ee9d3403e8941bcebadc0abd1e97d6f9d6089"
            },
            "downloads": -1,
            "filename": "evalica-0.3.0-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "has_sig": false,
            "md5_digest": "2180508635b09947355932f71e59598d",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": "~=3.8",
            "size": 356463,
            "upload_time": "2024-10-11T18:42:33",
            "upload_time_iso_8601": "2024-10-11T18:42:33.230030Z",
            "url": "https://files.pythonhosted.org/packages/fe/84/165b8656618bae1794d73697ea19763faf1c58b6050e1b44a414f5a72437/evalica-0.3.0-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "ba61d73df34f7216e26d0523ade4cda1b0ca8d55a950bb3f917a4ca694473110",
                "md5": "90f26c5bdf34894768229b4c27b58a53",
                "sha256": "c521b2d119db44abcf1d40542e4617846b26f3fe18148b2efef95f2a5c83eb6e"
            },
            "downloads": -1,
            "filename": "evalica-0.3.0-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "90f26c5bdf34894768229b4c27b58a53",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": "~=3.8",
            "size": 357587,
            "upload_time": "2024-10-11T18:42:34",
            "upload_time_iso_8601": "2024-10-11T18:42:34.336051Z",
            "url": "https://files.pythonhosted.org/packages/ba/61/d73df34f7216e26d0523ade4cda1b0ca8d55a950bb3f917a4ca694473110/evalica-0.3.0-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "db4b32202966abc9780c3833116605e3df78e30c6739840f123b9f9317dc279f",
                "md5": "7a78c87a87d1e3356e92cbe4a3be3fb3",
                "sha256": "f0572216bb838aa641a530c46c0238d077adbdf6f206bbb71c2471d334450d97"
            },
            "downloads": -1,
            "filename": "evalica-0.3.0-cp38-abi3-manylinux_2_5_i686.manylinux1_i686.whl",
            "has_sig": false,
            "md5_digest": "7a78c87a87d1e3356e92cbe4a3be3fb3",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": "~=3.8",
            "size": 372272,
            "upload_time": "2024-10-11T18:42:36",
            "upload_time_iso_8601": "2024-10-11T18:42:36.151407Z",
            "url": "https://files.pythonhosted.org/packages/db/4b/32202966abc9780c3833116605e3df78e30c6739840f123b9f9317dc279f/evalica-0.3.0-cp38-abi3-manylinux_2_5_i686.manylinux1_i686.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "ae74b36f79e827e9f7a71071fe75c8aaaf2e1a5089c2453d21759c7411723890",
                "md5": "6202d6c04ce495724a07e6f1373379f3",
                "sha256": "87d61e9cd4840739799e4dc8c5342bd2164f79369e6392c68561e9531afd54bb"
            },
            "downloads": -1,
            "filename": "evalica-0.3.0-cp38-abi3-musllinux_1_1_aarch64.whl",
            "has_sig": false,
            "md5_digest": "6202d6c04ce495724a07e6f1373379f3",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": "~=3.8",
            "size": 533674,
            "upload_time": "2024-10-11T18:42:37",
            "upload_time_iso_8601": "2024-10-11T18:42:37.460409Z",
            "url": "https://files.pythonhosted.org/packages/ae/74/b36f79e827e9f7a71071fe75c8aaaf2e1a5089c2453d21759c7411723890/evalica-0.3.0-cp38-abi3-musllinux_1_1_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "d617b2dc6374ef5e7692e78b9d3da2ad8eccc2b32cd3ec119f3779ca655e2321",
                "md5": "ee0e4240b56b26f0249ebdfc3841290b",
                "sha256": "0b92e4f52a496851028022eb2a01c037f67dc19f654bf73803d2b0b53d52a741"
            },
            "downloads": -1,
            "filename": "evalica-0.3.0-cp38-abi3-musllinux_1_1_x86_64.whl",
            "has_sig": false,
            "md5_digest": "ee0e4240b56b26f0249ebdfc3841290b",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": "~=3.8",
            "size": 527875,
            "upload_time": "2024-10-11T18:42:38",
            "upload_time_iso_8601": "2024-10-11T18:42:38.655448Z",
            "url": "https://files.pythonhosted.org/packages/d6/17/b2dc6374ef5e7692e78b9d3da2ad8eccc2b32cd3ec119f3779ca655e2321/evalica-0.3.0-cp38-abi3-musllinux_1_1_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "2e730a4bd8e3211c53aff60103be542bfa2c561d5393b973a8b0b81b56c24ca3",
                "md5": "4c120df24d3ec9fd2a5bbf871fe85254",
                "sha256": "b672c5eaee9e118223d61eba35108105c24d82fc043d85d61507d3461e5e45bc"
            },
            "downloads": -1,
            "filename": "evalica-0.3.0-cp38-abi3-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "4c120df24d3ec9fd2a5bbf871fe85254",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": "~=3.8",
            "size": 225441,
            "upload_time": "2024-10-11T18:42:40",
            "upload_time_iso_8601": "2024-10-11T18:42:40.178734Z",
            "url": "https://files.pythonhosted.org/packages/2e/73/0a4bd8e3211c53aff60103be542bfa2c561d5393b973a8b0b81b56c24ca3/evalica-0.3.0-cp38-abi3-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "984350ae6c81cb9f1f1e334275759a02bd045e6041971abf09586d55d4781c09",
                "md5": "dfdf5ee453a9d315fcad78fa4f908b20",
                "sha256": "e05b15b1feb6fcc34686d171d4004f167eb2b61ee36eb5f7885bfcc8e2f1b5cf"
            },
            "downloads": -1,
            "filename": "evalica-0.3.0-pp310-pypy310_pp73-macosx_10_12_x86_64.whl",
            "has_sig": false,
            "md5_digest": "dfdf5ee453a9d315fcad78fa4f908b20",
            "packagetype": "bdist_wheel",
            "python_version": "pp310",
            "requires_python": "~=3.8",
            "size": 322317,
            "upload_time": "2024-10-11T18:42:41",
            "upload_time_iso_8601": "2024-10-11T18:42:41.569752Z",
            "url": "https://files.pythonhosted.org/packages/98/43/50ae6c81cb9f1f1e334275759a02bd045e6041971abf09586d55d4781c09/evalica-0.3.0-pp310-pypy310_pp73-macosx_10_12_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "300628be6dfe60654956a0d8a90c49505b9af61ab1d835713fbf111c66a629d7",
                "md5": "baab0f6661a78806c20ff65931adc252",
                "sha256": "c653d3d18cec5aca917d5c6d0cde01c704274ecbbe84ac469437e9d54eb176f1"
            },
            "downloads": -1,
            "filename": "evalica-0.3.0-pp310-pypy310_pp73-macosx_11_0_arm64.whl",
            "has_sig": false,
            "md5_digest": "baab0f6661a78806c20ff65931adc252",
            "packagetype": "bdist_wheel",
            "python_version": "pp310",
            "requires_python": "~=3.8",
            "size": 306330,
            "upload_time": "2024-10-11T18:42:42",
            "upload_time_iso_8601": "2024-10-11T18:42:42.993306Z",
            "url": "https://files.pythonhosted.org/packages/30/06/28be6dfe60654956a0d8a90c49505b9af61ab1d835713fbf111c66a629d7/evalica-0.3.0-pp310-pypy310_pp73-macosx_11_0_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "27eac562b394dcd0830d57285f9895649b05e8340c7192828e7bcf31e4720ac0",
                "md5": "86e493bbf6c95744444827fea829e262",
                "sha256": "3e370fe3f71b67d246d39ee0629a74adbb8b9a151e71600707bab8c16906dfb2"
            },
            "downloads": -1,
            "filename": "evalica-0.3.0-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "has_sig": false,
            "md5_digest": "86e493bbf6c95744444827fea829e262",
            "packagetype": "bdist_wheel",
            "python_version": "pp310",
            "requires_python": "~=3.8",
            "size": 355376,
            "upload_time": "2024-10-11T18:42:44",
            "upload_time_iso_8601": "2024-10-11T18:42:44.705358Z",
            "url": "https://files.pythonhosted.org/packages/27/ea/c562b394dcd0830d57285f9895649b05e8340c7192828e7bcf31e4720ac0/evalica-0.3.0-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "f110b18ef7c5bbb9880a69b0d355ed2ed8e0e1b8c2e23b89b0f80c2e1cf6c7af",
                "md5": "0084fa7c2e3de939f83001ddcfd82cf6",
                "sha256": "30bc904cf88ae1a03a70972bc9438ee574c83a162c771b7fd194ce6ae1774968"
            },
            "downloads": -1,
            "filename": "evalica-0.3.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "0084fa7c2e3de939f83001ddcfd82cf6",
            "packagetype": "bdist_wheel",
            "python_version": "pp310",
            "requires_python": "~=3.8",
            "size": 356493,
            "upload_time": "2024-10-11T18:42:46",
            "upload_time_iso_8601": "2024-10-11T18:42:46.057805Z",
            "url": "https://files.pythonhosted.org/packages/f1/10/b18ef7c5bbb9880a69b0d355ed2ed8e0e1b8c2e23b89b0f80c2e1cf6c7af/evalica-0.3.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "874b6f8ea6030f2048e1bb3f30e548ad7994cc84335ab8572f2d242dab104d98",
                "md5": "bc1e9b8b3fc4c2b54c82056fce7b17b9",
                "sha256": "6543129e6abc507102ac0f07061eb66281a7290963e31ba0f98d4f70406d277d"
            },
            "downloads": -1,
            "filename": "evalica-0.3.0-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.whl",
            "has_sig": false,
            "md5_digest": "bc1e9b8b3fc4c2b54c82056fce7b17b9",
            "packagetype": "bdist_wheel",
            "python_version": "pp310",
            "requires_python": "~=3.8",
            "size": 370975,
            "upload_time": "2024-10-11T18:42:47",
            "upload_time_iso_8601": "2024-10-11T18:42:47.598708Z",
            "url": "https://files.pythonhosted.org/packages/87/4b/6f8ea6030f2048e1bb3f30e548ad7994cc84335ab8572f2d242dab104d98/evalica-0.3.0-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "1fe6fa81d5083df36b1aa9126784f7c40776fb4468d0a8b6d29bac03a504a91b",
                "md5": "2943ea5492e23277833a4ea8a9cfc0f8",
                "sha256": "4cf06fa2719b6fc0ee073bc16f3433eab5dd57387616c1888ef0a68671d43270"
            },
            "downloads": -1,
            "filename": "evalica-0.3.0-pp310-pypy310_pp73-musllinux_1_1_aarch64.whl",
            "has_sig": false,
            "md5_digest": "2943ea5492e23277833a4ea8a9cfc0f8",
            "packagetype": "bdist_wheel",
            "python_version": "pp310",
            "requires_python": "~=3.8",
            "size": 532567,
            "upload_time": "2024-10-11T18:42:49",
            "upload_time_iso_8601": "2024-10-11T18:42:49.091343Z",
            "url": "https://files.pythonhosted.org/packages/1f/e6/fa81d5083df36b1aa9126784f7c40776fb4468d0a8b6d29bac03a504a91b/evalica-0.3.0-pp310-pypy310_pp73-musllinux_1_1_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "e922038c97e368e326d85e99da3c3e340642fe25bdc46906f9cecb4ef6544db8",
                "md5": "89ea02816841e0fc30cd51062d7a53fa",
                "sha256": "9833d13594473404e70b6d70d0012cf1257d9bf682c9482cdc9bb4b9518081b6"
            },
            "downloads": -1,
            "filename": "evalica-0.3.0-pp310-pypy310_pp73-musllinux_1_1_x86_64.whl",
            "has_sig": false,
            "md5_digest": "89ea02816841e0fc30cd51062d7a53fa",
            "packagetype": "bdist_wheel",
            "python_version": "pp310",
            "requires_python": "~=3.8",
            "size": 527110,
            "upload_time": "2024-10-11T18:42:50",
            "upload_time_iso_8601": "2024-10-11T18:42:50.207872Z",
            "url": "https://files.pythonhosted.org/packages/e9/22/038c97e368e326d85e99da3c3e340642fe25bdc46906f9cecb4ef6544db8/evalica-0.3.0-pp310-pypy310_pp73-musllinux_1_1_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "35d85344ecc59a776f90186e47a52d4c8fdc00c3d3b35c35ebbafb3f49cc4ed0",
                "md5": "3096d8c898c50c81b5f9afad2574a88b",
                "sha256": "b31d359b3841566da80cd9f4e33f79e22edf36d5a8d82443b43b3d5b9eb30799"
            },
            "downloads": -1,
            "filename": "evalica-0.3.0-pp39-pypy39_pp73-macosx_10_12_x86_64.whl",
            "has_sig": false,
            "md5_digest": "3096d8c898c50c81b5f9afad2574a88b",
            "packagetype": "bdist_wheel",
            "python_version": "pp39",
            "requires_python": "~=3.8",
            "size": 322734,
            "upload_time": "2024-10-11T18:42:51",
            "upload_time_iso_8601": "2024-10-11T18:42:51.770203Z",
            "url": "https://files.pythonhosted.org/packages/35/d8/5344ecc59a776f90186e47a52d4c8fdc00c3d3b35c35ebbafb3f49cc4ed0/evalica-0.3.0-pp39-pypy39_pp73-macosx_10_12_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "83ad5222616f88e08d589f6aac85f268ccc9940940b26b467977f346447fc184",
                "md5": "6ca1be3442641a7b1821f360ea38182e",
                "sha256": "b4e0d23c41e9ba9377e9fdf4ccefd51d36ed3aac4fa164d10acaa7a2a7527c7d"
            },
            "downloads": -1,
            "filename": "evalica-0.3.0-pp39-pypy39_pp73-macosx_11_0_arm64.whl",
            "has_sig": false,
            "md5_digest": "6ca1be3442641a7b1821f360ea38182e",
            "packagetype": "bdist_wheel",
            "python_version": "pp39",
            "requires_python": "~=3.8",
            "size": 307026,
            "upload_time": "2024-10-11T18:42:53",
            "upload_time_iso_8601": "2024-10-11T18:42:53.707460Z",
            "url": "https://files.pythonhosted.org/packages/83/ad/5222616f88e08d589f6aac85f268ccc9940940b26b467977f346447fc184/evalica-0.3.0-pp39-pypy39_pp73-macosx_11_0_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "ac25c0d450ae15d828d2c3687202c3547e1f7472b2d4915634a61c61ea68d385",
                "md5": "202c37d5c4318ce2b2fb493bebdf8c68",
                "sha256": "a57db8e2a51853722878f9a12390c0741d78d0912ec5c56ca77a500b874bab5b"
            },
            "downloads": -1,
            "filename": "evalica-0.3.0-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "has_sig": false,
            "md5_digest": "202c37d5c4318ce2b2fb493bebdf8c68",
            "packagetype": "bdist_wheel",
            "python_version": "pp39",
            "requires_python": "~=3.8",
            "size": 355696,
            "upload_time": "2024-10-11T18:42:55",
            "upload_time_iso_8601": "2024-10-11T18:42:55.223883Z",
            "url": "https://files.pythonhosted.org/packages/ac/25/c0d450ae15d828d2c3687202c3547e1f7472b2d4915634a61c61ea68d385/evalica-0.3.0-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "5c5b86116d8cfb5a3c6d9c86c97fa138be48b6d3f0934479b751166ecea86525",
                "md5": "1501b1b2543319982af69edf3ad3705f",
                "sha256": "c83b6800d38fa6b9d775e43dd4d7a5f554b2cff0865dc0908ee8beac2726c1e5"
            },
            "downloads": -1,
            "filename": "evalica-0.3.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "1501b1b2543319982af69edf3ad3705f",
            "packagetype": "bdist_wheel",
            "python_version": "pp39",
            "requires_python": "~=3.8",
            "size": 356924,
            "upload_time": "2024-10-11T18:42:56",
            "upload_time_iso_8601": "2024-10-11T18:42:56.326372Z",
            "url": "https://files.pythonhosted.org/packages/5c/5b/86116d8cfb5a3c6d9c86c97fa138be48b6d3f0934479b751166ecea86525/evalica-0.3.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "1a5b665a1d26b170502bbec452acf8d9d403fd06e5f16752a97e96dbb389587c",
                "md5": "996aeacb6da4bd57f38760b65aa13d9d",
                "sha256": "a74af27380a3201aa1f7fd7b15fe65a72d166f08ffdb949e476f05d08aa53f51"
            },
            "downloads": -1,
            "filename": "evalica-0.3.0-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.whl",
            "has_sig": false,
            "md5_digest": "996aeacb6da4bd57f38760b65aa13d9d",
            "packagetype": "bdist_wheel",
            "python_version": "pp39",
            "requires_python": "~=3.8",
            "size": 371310,
            "upload_time": "2024-10-11T18:42:57",
            "upload_time_iso_8601": "2024-10-11T18:42:57.650263Z",
            "url": "https://files.pythonhosted.org/packages/1a/5b/665a1d26b170502bbec452acf8d9d403fd06e5f16752a97e96dbb389587c/evalica-0.3.0-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "13c3cad556071b278beeb1bdc40ed1db959a2b690f23ce1fb8cddc7d30f3f2f8",
                "md5": "630d7d081b8c23d3f335befa40a49e6b",
                "sha256": "56c1db4bc465ceb924e1f52970681b88edf8d85849b0802e5ff693b590f966e4"
            },
            "downloads": -1,
            "filename": "evalica-0.3.0-pp39-pypy39_pp73-musllinux_1_1_aarch64.whl",
            "has_sig": false,
            "md5_digest": "630d7d081b8c23d3f335befa40a49e6b",
            "packagetype": "bdist_wheel",
            "python_version": "pp39",
            "requires_python": "~=3.8",
            "size": 533143,
            "upload_time": "2024-10-11T18:42:58",
            "upload_time_iso_8601": "2024-10-11T18:42:58.734895Z",
            "url": "https://files.pythonhosted.org/packages/13/c3/cad556071b278beeb1bdc40ed1db959a2b690f23ce1fb8cddc7d30f3f2f8/evalica-0.3.0-pp39-pypy39_pp73-musllinux_1_1_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "46758dc8c087e4427b94a1ae722ed28036f82e6fcff7482833caf377b9a47f8e",
                "md5": "fc044a3d66df5ccfe60141f5d6b1fc22",
                "sha256": "6feec2385dbcc750e62e3e4a7d74d349c7950be2d6b4d084fa36f1df615d8514"
            },
            "downloads": -1,
            "filename": "evalica-0.3.0-pp39-pypy39_pp73-musllinux_1_1_x86_64.whl",
            "has_sig": false,
            "md5_digest": "fc044a3d66df5ccfe60141f5d6b1fc22",
            "packagetype": "bdist_wheel",
            "python_version": "pp39",
            "requires_python": "~=3.8",
            "size": 527428,
            "upload_time": "2024-10-11T18:43:00",
            "upload_time_iso_8601": "2024-10-11T18:43:00.566732Z",
            "url": "https://files.pythonhosted.org/packages/46/75/8dc8c087e4427b94a1ae722ed28036f82e6fcff7482833caf377b9a47f8e/evalica-0.3.0-pp39-pypy39_pp73-musllinux_1_1_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "14ddffe6c9b3fb9a39d2d90ec5ddd8cb4cf0cc0b28f7866ece5aa1f7fef45d12",
                "md5": "d9874ec53f1f06cc51a66b1bf6759688",
                "sha256": "07a4f5ef750fa652254a517389b66b2cdbba46420fc3e2ea600dd74595463fe3"
            },
            "downloads": -1,
            "filename": "evalica-0.3.0.tar.gz",
            "has_sig": false,
            "md5_digest": "d9874ec53f1f06cc51a66b1bf6759688",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": "~=3.8",
            "size": 31622,
            "upload_time": "2024-10-11T18:43:02",
            "upload_time_iso_8601": "2024-10-11T18:43:02.145819Z",
            "url": "https://files.pythonhosted.org/packages/14/dd/ffe6c9b3fb9a39d2d90ec5ddd8cb4cf0cc0b28f7866ece5aa1f7fef45d12/evalica-0.3.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-10-11 18:43:02",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "dustalov",
    "github_project": "evalica",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "evalica"
}
        
Elapsed time: 0.76286s