evalica


Nameevalica JSON
Version 0.2.0 PyPI version JSON
download
home_pageNone
SummaryEvalica, your favourite evaluation toolkit.
upload_time2024-08-29 22:34:46
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** 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.

```
$ evalica -i food.csv bradley-terry
item,score,rank
Tacos,0.43428827947351706,1
Sushi,0.19060105855071743,2
Burger,0.14797720376982199,3
Pasta,0.12815347866987045,4
Pizza,0.0989799795360731,5
```

Refer to the [food.csv](food.csv) file as an input example.

## 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/f3/d2/2bdaf00df3eaf9fb0912f386c8ce793df900efba51d5cfe851af8eff32eb/evalica-0.2.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** 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```\n$ evalica -i food.csv bradley-terry\nitem,score,rank\nTacos,0.43428827947351706,1\nSushi,0.19060105855071743,2\nBurger,0.14797720376982199,3\nPasta,0.12815347866987045,4\nPizza,0.0989799795360731,5\n```\n\nRefer to the [food.csv](food.csv) file as an input example.\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.2.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": "7edea1b195fded5ee899c2d44e3d9376b12b5ec2d6dfa6d854489f2c7d89b338",
                "md5": "bea5d47f6fbe64aa07a2e901dcb87d3c",
                "sha256": "9f2e60f1615348b2b3abf7a9ed10f8483eb620ad8439e0a5bfa94dc2b3b5897f"
            },
            "downloads": -1,
            "filename": "evalica-0.2.0-cp38-abi3-macosx_10_12_x86_64.whl",
            "has_sig": false,
            "md5_digest": "bea5d47f6fbe64aa07a2e901dcb87d3c",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": "~=3.8",
            "size": 324407,
            "upload_time": "2024-08-29T22:34:10",
            "upload_time_iso_8601": "2024-08-29T22:34:10.092814Z",
            "url": "https://files.pythonhosted.org/packages/7e/de/a1b195fded5ee899c2d44e3d9376b12b5ec2d6dfa6d854489f2c7d89b338/evalica-0.2.0-cp38-abi3-macosx_10_12_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "5e351143569d0e965f73c9e531f3ee9d83ba384969742f656f02f072a2fdb1a0",
                "md5": "1d422f080c6b8445ff536888619167ee",
                "sha256": "b39c6172fab66c8bb020c756f007536d8969c9f9cf577ba9a9a78e04dd48af22"
            },
            "downloads": -1,
            "filename": "evalica-0.2.0-cp38-abi3-macosx_11_0_arm64.whl",
            "has_sig": false,
            "md5_digest": "1d422f080c6b8445ff536888619167ee",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": "~=3.8",
            "size": 311035,
            "upload_time": "2024-08-29T22:34:11",
            "upload_time_iso_8601": "2024-08-29T22:34:11.914602Z",
            "url": "https://files.pythonhosted.org/packages/5e/35/1143569d0e965f73c9e531f3ee9d83ba384969742f656f02f072a2fdb1a0/evalica-0.2.0-cp38-abi3-macosx_11_0_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "90cf5375b0407b3317e15502dc0426da6fe575847edb6e399bc22f4d12efe365",
                "md5": "d8c502c9d34b8418a3ffbb9223f4ee29",
                "sha256": "b4241f7e068cb853ee0f75f1246026653ff645ef8894c8298ef2a3c710417eaa"
            },
            "downloads": -1,
            "filename": "evalica-0.2.0-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "has_sig": false,
            "md5_digest": "d8c502c9d34b8418a3ffbb9223f4ee29",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": "~=3.8",
            "size": 355574,
            "upload_time": "2024-08-29T22:34:13",
            "upload_time_iso_8601": "2024-08-29T22:34:13.547435Z",
            "url": "https://files.pythonhosted.org/packages/90/cf/5375b0407b3317e15502dc0426da6fe575847edb6e399bc22f4d12efe365/evalica-0.2.0-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "64c7754934ce275509257aacde08102f6a6e5f3a50fe451a298abca4be3d0aa6",
                "md5": "22b8bed4a22ddd4e8afe06678dc50665",
                "sha256": "1b4c6d5fc99c2419ace9c9690735be0554d7d9498d2f7119f9efa8a249b94830"
            },
            "downloads": -1,
            "filename": "evalica-0.2.0-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "22b8bed4a22ddd4e8afe06678dc50665",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": "~=3.8",
            "size": 356887,
            "upload_time": "2024-08-29T22:34:15",
            "upload_time_iso_8601": "2024-08-29T22:34:15.294873Z",
            "url": "https://files.pythonhosted.org/packages/64/c7/754934ce275509257aacde08102f6a6e5f3a50fe451a298abca4be3d0aa6/evalica-0.2.0-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "b88258db778c71db1745bed38faad3a274fd0d272c6f459e31893aba995491fa",
                "md5": "b8ecb9459877ffaad7c2dc4a6c957eec",
                "sha256": "f806adff9a35f50be34f9a1bfe4048fe95643eace752c98efc54a8ae9db5f0bc"
            },
            "downloads": -1,
            "filename": "evalica-0.2.0-cp38-abi3-manylinux_2_5_i686.manylinux1_i686.whl",
            "has_sig": false,
            "md5_digest": "b8ecb9459877ffaad7c2dc4a6c957eec",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": "~=3.8",
            "size": 372708,
            "upload_time": "2024-08-29T22:34:17",
            "upload_time_iso_8601": "2024-08-29T22:34:17.068993Z",
            "url": "https://files.pythonhosted.org/packages/b8/82/58db778c71db1745bed38faad3a274fd0d272c6f459e31893aba995491fa/evalica-0.2.0-cp38-abi3-manylinux_2_5_i686.manylinux1_i686.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "dc5c7048bed40fd32608d92d7553dd5f53d8e33151b1e81bf5df3544fe18b059",
                "md5": "7600a9514e142722d6446d51fffc7e98",
                "sha256": "ad962515b5afdc1bbf8c4c351084c60e4181a3008c23405c0643952ebede1984"
            },
            "downloads": -1,
            "filename": "evalica-0.2.0-cp38-abi3-musllinux_1_1_aarch64.whl",
            "has_sig": false,
            "md5_digest": "7600a9514e142722d6446d51fffc7e98",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": "~=3.8",
            "size": 534316,
            "upload_time": "2024-08-29T22:34:19",
            "upload_time_iso_8601": "2024-08-29T22:34:19.043888Z",
            "url": "https://files.pythonhosted.org/packages/dc/5c/7048bed40fd32608d92d7553dd5f53d8e33151b1e81bf5df3544fe18b059/evalica-0.2.0-cp38-abi3-musllinux_1_1_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "339986d21dcaab29bf2ac5d078064d79788ac222e251a19e1acd67871b411698",
                "md5": "5d044d94d0bbcb2f90c1781ee396de69",
                "sha256": "752647446260eedc4afc22d41482c4434ef6c93812e61e11ee8173501cb9c25f"
            },
            "downloads": -1,
            "filename": "evalica-0.2.0-cp38-abi3-musllinux_1_1_x86_64.whl",
            "has_sig": false,
            "md5_digest": "5d044d94d0bbcb2f90c1781ee396de69",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": "~=3.8",
            "size": 527145,
            "upload_time": "2024-08-29T22:34:20",
            "upload_time_iso_8601": "2024-08-29T22:34:20.474155Z",
            "url": "https://files.pythonhosted.org/packages/33/99/86d21dcaab29bf2ac5d078064d79788ac222e251a19e1acd67871b411698/evalica-0.2.0-cp38-abi3-musllinux_1_1_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "6a12b93063c1cd9015a33c1a8a7b44d3d49be9c898917391de3d487835bcb87f",
                "md5": "f3280ae6a8118efd3a4c5746841fc805",
                "sha256": "31c0b18896e21bb461d4266dd0c344b4568d01328afef12705653a071a0d11bf"
            },
            "downloads": -1,
            "filename": "evalica-0.2.0-cp38-abi3-win32.whl",
            "has_sig": false,
            "md5_digest": "f3280ae6a8118efd3a4c5746841fc805",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": "~=3.8",
            "size": 207358,
            "upload_time": "2024-08-29T22:34:21",
            "upload_time_iso_8601": "2024-08-29T22:34:21.691930Z",
            "url": "https://files.pythonhosted.org/packages/6a/12/b93063c1cd9015a33c1a8a7b44d3d49be9c898917391de3d487835bcb87f/evalica-0.2.0-cp38-abi3-win32.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "9a53454b6b97bbec64d79cbb5fd8dfdfdb88f700483eff0c60265869e0f5b652",
                "md5": "dd9922e389b63d1a7d52889bab24dd84",
                "sha256": "4b8c1c89af3b60b86cce872931c36f2474e1c94c4018e8d3371771b1f401ae30"
            },
            "downloads": -1,
            "filename": "evalica-0.2.0-cp38-abi3-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "dd9922e389b63d1a7d52889bab24dd84",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": "~=3.8",
            "size": 226415,
            "upload_time": "2024-08-29T22:34:23",
            "upload_time_iso_8601": "2024-08-29T22:34:23.573994Z",
            "url": "https://files.pythonhosted.org/packages/9a/53/454b6b97bbec64d79cbb5fd8dfdfdb88f700483eff0c60265869e0f5b652/evalica-0.2.0-cp38-abi3-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "6c51246a241ced808b0a870bdb26e337b903641239d809b6b5664336fe81ad67",
                "md5": "253c41fb02508ba2e4bb7de37326dcf9",
                "sha256": "e9d717ebc54becbec47675e7d033186e4d74affccf888b15fd25fec6b5693add"
            },
            "downloads": -1,
            "filename": "evalica-0.2.0-pp310-pypy310_pp73-macosx_10_12_x86_64.whl",
            "has_sig": false,
            "md5_digest": "253c41fb02508ba2e4bb7de37326dcf9",
            "packagetype": "bdist_wheel",
            "python_version": "pp310",
            "requires_python": "~=3.8",
            "size": 321845,
            "upload_time": "2024-08-29T22:34:25",
            "upload_time_iso_8601": "2024-08-29T22:34:25.216071Z",
            "url": "https://files.pythonhosted.org/packages/6c/51/246a241ced808b0a870bdb26e337b903641239d809b6b5664336fe81ad67/evalica-0.2.0-pp310-pypy310_pp73-macosx_10_12_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "a435ca711dead32d851d6b4679b9f79b4397945ec7a8ea7aa8c4e06efb79c26c",
                "md5": "231b03697fa1d9638b459ca791d51921",
                "sha256": "26bec72aaaada8309fca1b7478d1d3dfac3ba28b2ef5e1cc66fb221c897ccd42"
            },
            "downloads": -1,
            "filename": "evalica-0.2.0-pp310-pypy310_pp73-macosx_11_0_arm64.whl",
            "has_sig": false,
            "md5_digest": "231b03697fa1d9638b459ca791d51921",
            "packagetype": "bdist_wheel",
            "python_version": "pp310",
            "requires_python": "~=3.8",
            "size": 307327,
            "upload_time": "2024-08-29T22:34:26",
            "upload_time_iso_8601": "2024-08-29T22:34:26.579958Z",
            "url": "https://files.pythonhosted.org/packages/a4/35/ca711dead32d851d6b4679b9f79b4397945ec7a8ea7aa8c4e06efb79c26c/evalica-0.2.0-pp310-pypy310_pp73-macosx_11_0_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "b513200cb0f056188439f3ed880382a6aa5027de5ce1987d607496c9d38fe2bc",
                "md5": "b9a58273147efd3ff62d8e6533ff890c",
                "sha256": "1f57a8d741d40f12d9239907b80fd6fd78cea0da889aabaccfe4d6cca98fdc38"
            },
            "downloads": -1,
            "filename": "evalica-0.2.0-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "has_sig": false,
            "md5_digest": "b9a58273147efd3ff62d8e6533ff890c",
            "packagetype": "bdist_wheel",
            "python_version": "pp310",
            "requires_python": "~=3.8",
            "size": 353046,
            "upload_time": "2024-08-29T22:34:28",
            "upload_time_iso_8601": "2024-08-29T22:34:28.647456Z",
            "url": "https://files.pythonhosted.org/packages/b5/13/200cb0f056188439f3ed880382a6aa5027de5ce1987d607496c9d38fe2bc/evalica-0.2.0-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "c5829847bd3758e9e8e519aaabe059f35d1cb414299965b100512f84584cfe07",
                "md5": "311518c85184117d655442915e018887",
                "sha256": "08f50d871eea6184f8afe429631975b59c94349f55d4d25fc5443ff94578255e"
            },
            "downloads": -1,
            "filename": "evalica-0.2.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "311518c85184117d655442915e018887",
            "packagetype": "bdist_wheel",
            "python_version": "pp310",
            "requires_python": "~=3.8",
            "size": 354183,
            "upload_time": "2024-08-29T22:34:30",
            "upload_time_iso_8601": "2024-08-29T22:34:30.610867Z",
            "url": "https://files.pythonhosted.org/packages/c5/82/9847bd3758e9e8e519aaabe059f35d1cb414299965b100512f84584cfe07/evalica-0.2.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "114ffc4725515acd956537517fb65f3e7f220f4c8a3da04dcfc091f1db3b3c0f",
                "md5": "4996044fb278696b63ba77327d0692c8",
                "sha256": "c74e9ae3e0602d86c4e532d96b40d7fa68b05fc04f71f0f5d7bd8b67cf065eeb"
            },
            "downloads": -1,
            "filename": "evalica-0.2.0-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.whl",
            "has_sig": false,
            "md5_digest": "4996044fb278696b63ba77327d0692c8",
            "packagetype": "bdist_wheel",
            "python_version": "pp310",
            "requires_python": "~=3.8",
            "size": 367916,
            "upload_time": "2024-08-29T22:34:32",
            "upload_time_iso_8601": "2024-08-29T22:34:32.334210Z",
            "url": "https://files.pythonhosted.org/packages/11/4f/fc4725515acd956537517fb65f3e7f220f4c8a3da04dcfc091f1db3b3c0f/evalica-0.2.0-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "2175ad97b5837e0522ed1df712ca6ea8ac81cb61d63e0c961de8ddb185d5e455",
                "md5": "caec8ae0fa156862b2f76cae07646f75",
                "sha256": "b68da71812333e9153bebbfba8d3beace4d94245c2a84f727dc2226a3e8334ec"
            },
            "downloads": -1,
            "filename": "evalica-0.2.0-pp310-pypy310_pp73-musllinux_1_1_aarch64.whl",
            "has_sig": false,
            "md5_digest": "caec8ae0fa156862b2f76cae07646f75",
            "packagetype": "bdist_wheel",
            "python_version": "pp310",
            "requires_python": "~=3.8",
            "size": 531543,
            "upload_time": "2024-08-29T22:34:33",
            "upload_time_iso_8601": "2024-08-29T22:34:33.856633Z",
            "url": "https://files.pythonhosted.org/packages/21/75/ad97b5837e0522ed1df712ca6ea8ac81cb61d63e0c961de8ddb185d5e455/evalica-0.2.0-pp310-pypy310_pp73-musllinux_1_1_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "e6028f722d80105ad60196bd585a7044501ba9f55055111d9d1e2a680161fb95",
                "md5": "5fd8183e58d19896ba3fc11a617bb8a0",
                "sha256": "c4147a4171780e6807ef3dd6cba4cb19b379357faa9cb72c65f9c55b5bb6533b"
            },
            "downloads": -1,
            "filename": "evalica-0.2.0-pp310-pypy310_pp73-musllinux_1_1_x86_64.whl",
            "has_sig": false,
            "md5_digest": "5fd8183e58d19896ba3fc11a617bb8a0",
            "packagetype": "bdist_wheel",
            "python_version": "pp310",
            "requires_python": "~=3.8",
            "size": 525650,
            "upload_time": "2024-08-29T22:34:35",
            "upload_time_iso_8601": "2024-08-29T22:34:35.404940Z",
            "url": "https://files.pythonhosted.org/packages/e6/02/8f722d80105ad60196bd585a7044501ba9f55055111d9d1e2a680161fb95/evalica-0.2.0-pp310-pypy310_pp73-musllinux_1_1_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "632aaff3ff45be8056fa673a08d7c429016cee2ad3d8692dd1d43c22c0a2a41e",
                "md5": "481cc27d0f4c7a8454e765c334890811",
                "sha256": "cdd3067086ef92aa9878992cd63d3d7d695b905eca2b5cc3e238a49c7cd5e47a"
            },
            "downloads": -1,
            "filename": "evalica-0.2.0-pp39-pypy39_pp73-macosx_10_12_x86_64.whl",
            "has_sig": false,
            "md5_digest": "481cc27d0f4c7a8454e765c334890811",
            "packagetype": "bdist_wheel",
            "python_version": "pp39",
            "requires_python": "~=3.8",
            "size": 322216,
            "upload_time": "2024-08-29T22:34:36",
            "upload_time_iso_8601": "2024-08-29T22:34:36.583057Z",
            "url": "https://files.pythonhosted.org/packages/63/2a/aff3ff45be8056fa673a08d7c429016cee2ad3d8692dd1d43c22c0a2a41e/evalica-0.2.0-pp39-pypy39_pp73-macosx_10_12_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "162fcbc770600e190513ecebd98a1efc94965f4a5c9f34392f1ac74cf7df2ca4",
                "md5": "c7e2c7a7663da8ca675d8baeb25d7668",
                "sha256": "4315a2a9be234a19282344d243021217f5f575705c0c25e628bf40bad157174c"
            },
            "downloads": -1,
            "filename": "evalica-0.2.0-pp39-pypy39_pp73-macosx_11_0_arm64.whl",
            "has_sig": false,
            "md5_digest": "c7e2c7a7663da8ca675d8baeb25d7668",
            "packagetype": "bdist_wheel",
            "python_version": "pp39",
            "requires_python": "~=3.8",
            "size": 307436,
            "upload_time": "2024-08-29T22:34:38",
            "upload_time_iso_8601": "2024-08-29T22:34:38.065769Z",
            "url": "https://files.pythonhosted.org/packages/16/2f/cbc770600e190513ecebd98a1efc94965f4a5c9f34392f1ac74cf7df2ca4/evalica-0.2.0-pp39-pypy39_pp73-macosx_11_0_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "28798baa6f07976ebc7b83747f6c7d44d22d76d946ada0a034e83431981d8525",
                "md5": "e9914ebd4bc582000841e963b77e6a55",
                "sha256": "8946efedaa909e109be54ba2ca746bd6af42cceb0e2ed195998b78ff01aaf55d"
            },
            "downloads": -1,
            "filename": "evalica-0.2.0-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "has_sig": false,
            "md5_digest": "e9914ebd4bc582000841e963b77e6a55",
            "packagetype": "bdist_wheel",
            "python_version": "pp39",
            "requires_python": "~=3.8",
            "size": 353144,
            "upload_time": "2024-08-29T22:34:39",
            "upload_time_iso_8601": "2024-08-29T22:34:39.265388Z",
            "url": "https://files.pythonhosted.org/packages/28/79/8baa6f07976ebc7b83747f6c7d44d22d76d946ada0a034e83431981d8525/evalica-0.2.0-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "ccc30e12f36d67244cf903490dd433609bccfe8c4989a04494821a850c37f110",
                "md5": "44058b15a224b722c1c0590dbb11b902",
                "sha256": "a553e6909dd11acdb9c9683b360c20559ee62e585c35211372a759334e0d0c24"
            },
            "downloads": -1,
            "filename": "evalica-0.2.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "44058b15a224b722c1c0590dbb11b902",
            "packagetype": "bdist_wheel",
            "python_version": "pp39",
            "requires_python": "~=3.8",
            "size": 354511,
            "upload_time": "2024-08-29T22:34:40",
            "upload_time_iso_8601": "2024-08-29T22:34:40.771331Z",
            "url": "https://files.pythonhosted.org/packages/cc/c3/0e12f36d67244cf903490dd433609bccfe8c4989a04494821a850c37f110/evalica-0.2.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "665ccf53880846901e02baca97dddc4adcaf2d7474175a6c83a91a305a477a8c",
                "md5": "c6358e2cf7b98cd73dc02e12b34ecc17",
                "sha256": "30dac65b1db4f7ed47e64a9281f5c0d8998c28de8f50561798f682da5343d146"
            },
            "downloads": -1,
            "filename": "evalica-0.2.0-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.whl",
            "has_sig": false,
            "md5_digest": "c6358e2cf7b98cd73dc02e12b34ecc17",
            "packagetype": "bdist_wheel",
            "python_version": "pp39",
            "requires_python": "~=3.8",
            "size": 369350,
            "upload_time": "2024-08-29T22:34:42",
            "upload_time_iso_8601": "2024-08-29T22:34:42.523132Z",
            "url": "https://files.pythonhosted.org/packages/66/5c/cf53880846901e02baca97dddc4adcaf2d7474175a6c83a91a305a477a8c/evalica-0.2.0-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "23d97b03bf45434eada1042d77fe4905995670c1640c83264e4bdedd2d54b1b0",
                "md5": "dbc659d410d1a199f8d94fbd8308072f",
                "sha256": "3fdd572602af81e7f4d02492aa32698f940272f2268f290a66b06a3e0fda4bb8"
            },
            "downloads": -1,
            "filename": "evalica-0.2.0-pp39-pypy39_pp73-musllinux_1_1_aarch64.whl",
            "has_sig": false,
            "md5_digest": "dbc659d410d1a199f8d94fbd8308072f",
            "packagetype": "bdist_wheel",
            "python_version": "pp39",
            "requires_python": "~=3.8",
            "size": 531556,
            "upload_time": "2024-08-29T22:34:44",
            "upload_time_iso_8601": "2024-08-29T22:34:44.445815Z",
            "url": "https://files.pythonhosted.org/packages/23/d9/7b03bf45434eada1042d77fe4905995670c1640c83264e4bdedd2d54b1b0/evalica-0.2.0-pp39-pypy39_pp73-musllinux_1_1_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "bb37ca726e12693d0485f0a6d5b16fd0386ff25b8362c47d29d680008f992318",
                "md5": "4b67c21726a29abd0db0717a03805fdc",
                "sha256": "d824bd2a0a01d5154b881d447fbde7054bc2095b919016f900bfec35ed125bc2"
            },
            "downloads": -1,
            "filename": "evalica-0.2.0-pp39-pypy39_pp73-musllinux_1_1_x86_64.whl",
            "has_sig": false,
            "md5_digest": "4b67c21726a29abd0db0717a03805fdc",
            "packagetype": "bdist_wheel",
            "python_version": "pp39",
            "requires_python": "~=3.8",
            "size": 525867,
            "upload_time": "2024-08-29T22:34:45",
            "upload_time_iso_8601": "2024-08-29T22:34:45.908196Z",
            "url": "https://files.pythonhosted.org/packages/bb/37/ca726e12693d0485f0a6d5b16fd0386ff25b8362c47d29d680008f992318/evalica-0.2.0-pp39-pypy39_pp73-musllinux_1_1_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "f3d22bdaf00df3eaf9fb0912f386c8ce793df900efba51d5cfe851af8eff32eb",
                "md5": "d8a4bf9aa71d2e2191bb7bad964b3890",
                "sha256": "b3dc2a7114ca36e874236685025b7ec83e85749b9e09949f875f73c31594ecf6"
            },
            "downloads": -1,
            "filename": "evalica-0.2.0.tar.gz",
            "has_sig": false,
            "md5_digest": "d8a4bf9aa71d2e2191bb7bad964b3890",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": "~=3.8",
            "size": 30531,
            "upload_time": "2024-08-29T22:34:46",
            "upload_time_iso_8601": "2024-08-29T22:34:46.965316Z",
            "url": "https://files.pythonhosted.org/packages/f3/d2/2bdaf00df3eaf9fb0912f386c8ce793df900efba51d5cfe851af8eff32eb/evalica-0.2.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-08-29 22:34:46",
    "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.33483s