elkai


Nameelkai JSON
Version 2.0.1 PyPI version JSON
download
home_page
Summaryelkai is a Python library for solving travelling salesman problems (TSP) based on LKH 3
upload_time2023-05-09 17:15:08
maintainer
docs_urlNone
authorFilip Dimitrovski
requires_python>=3.7
licenseelkai License
keywords tsp travelling salesman problem solver atsp salesman travelling problem
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            <p align="center">
 <img src="https://raw.githubusercontent.com/fikisipi/elkai/assets/elkaiv2.png" alt="" />
</p>
<p align="center">
<em>elkai - a Python library for solving TSP problems</em>
</p>
<p align="center">
<a href="https://github.com/fikisipi/elkai/actions/workflows/python-app.yml"><img src="https://github.com/fikisipi/elkai/actions/workflows/python-app.yml/badge.svg" alt="Python build"></a>
<a href="https://pypi.org/project/elkai/"><img src="https://img.shields.io/pypi/v/elkai.svg" alt="elkai on PyPi"></a>
</p>

----

* **based on [LKH](http://akira.ruc.dk/~keld/research/LKH/) by Keld Helsgaun**: with proven optimal solutions up to N=315 and more accurate results than [Google's OR tools](https://developers.google.com/optimization/routing/tsp)
* **asymmetric and symmetric** [travelling salesman problems](https://en.wikipedia.org/wiki/Travelling_salesman_problem) support
* **clean and simple API**: get results with one line calls

## Installation

💾 **To install it** run `pip install elkai`

## Example usage

```python
import elkai

cities = elkai.Coordinates2D({
    'city1': (0, 0),
    'city2': (0, 4),
    'city3': (5, 0)
})

print(cities.solve_tsp())
```

```python
import elkai

cities = elkai.DistanceMatrix([
    [0, 4, 0],
    [0, 0, 5],
    [0, 0, 0]
])

print(cities.solve_tsp())
```

> **Note**
>
> [solve_int_matrix](https://github.com/fikisipi/elkai/blob/55187e83e7d91ee597b408c8644632fb0ef2687f/elkai/__init__.py#L33) and [solve_float_matrix](https://github.com/fikisipi/elkai/blob/55187e83e7d91ee597b408c8644632fb0ef2687f/elkai/__init__.py#L38) are deprecated in v1. Also, they don't contain the departure to origin in the result by default.

## License

The LKH native code by Helsgaun is released for non-commercial use only. Therefore the same restriction applies to elkai, which is explained in the `LICENSE` file. 

## How it works internally

* We refactored LKH such that it doesn't have global state and you don't need to restart the program in order to run another input problem
* We added a hook in ReadProblem that allows reading problems from memory instead of files
* We read the solution from the `Tour` variable and put it in a PyObject (Python list).
* ✓ Valgrind passed on `d3d8c12`.

⚠️ elkai takes the **global interpreter lock (GIL)** during the solving phase which means two threads cannot solve problems at the same time. If you want to run other workloads at the same time, you have to run another process - for example by using the `multiprocessing` module.

If there isn't a prebuilt wheel for your platform, you'll have to follow the `scikit-build` process.
            

Raw data

            {
    "_id": null,
    "home_page": "",
    "name": "elkai",
    "maintainer": "",
    "docs_url": null,
    "requires_python": ">=3.7",
    "maintainer_email": "",
    "keywords": "tsp travelling salesman problem solver atsp salesman travelling problem",
    "author": "Filip Dimitrovski",
    "author_email": "",
    "download_url": "https://files.pythonhosted.org/packages/90/0e/2de87c0770f9939fd4fe6ac5419976e29652e1b409803fae600ea2d328b4/elkai-2.0.1.tar.gz",
    "platform": null,
    "description": "<p align=\"center\">\n <img src=\"https://raw.githubusercontent.com/fikisipi/elkai/assets/elkaiv2.png\" alt=\"\" />\n</p>\n<p align=\"center\">\n<em>elkai - a Python library for solving TSP problems</em>\n</p>\n<p align=\"center\">\n<a href=\"https://github.com/fikisipi/elkai/actions/workflows/python-app.yml\"><img src=\"https://github.com/fikisipi/elkai/actions/workflows/python-app.yml/badge.svg\" alt=\"Python build\"></a>\n<a href=\"https://pypi.org/project/elkai/\"><img src=\"https://img.shields.io/pypi/v/elkai.svg\" alt=\"elkai on PyPi\"></a>\n</p>\n\n----\n\n* **based on [LKH](http://akira.ruc.dk/~keld/research/LKH/) by Keld Helsgaun**: with proven optimal solutions up to N=315 and more accurate results than [Google's OR tools](https://developers.google.com/optimization/routing/tsp)\n* **asymmetric and symmetric** [travelling salesman problems](https://en.wikipedia.org/wiki/Travelling_salesman_problem) support\n* **clean and simple API**: get results with one line calls\n\n## Installation\n\n\ud83d\udcbe **To install it** run `pip install elkai`\n\n## Example usage\n\n```python\nimport elkai\n\ncities = elkai.Coordinates2D({\n    'city1': (0, 0),\n    'city2': (0, 4),\n    'city3': (5, 0)\n})\n\nprint(cities.solve_tsp())\n```\n\n```python\nimport elkai\n\ncities = elkai.DistanceMatrix([\n    [0, 4, 0],\n    [0, 0, 5],\n    [0, 0, 0]\n])\n\nprint(cities.solve_tsp())\n```\n\n> **Note**\n>\n> [solve_int_matrix](https://github.com/fikisipi/elkai/blob/55187e83e7d91ee597b408c8644632fb0ef2687f/elkai/__init__.py#L33) and [solve_float_matrix](https://github.com/fikisipi/elkai/blob/55187e83e7d91ee597b408c8644632fb0ef2687f/elkai/__init__.py#L38) are deprecated in v1. Also, they don't contain the departure to origin in the result by default.\n\n## License\n\nThe LKH native code by Helsgaun is released for non-commercial use only. Therefore the same restriction applies to elkai, which is explained in the `LICENSE` file. \n\n## How it works internally\n\n* We refactored LKH such that it doesn't have global state and you don't need to restart the program in order to run another input problem\n* We added a hook in ReadProblem that allows reading problems from memory instead of files\n* We read the solution from the `Tour` variable and put it in a PyObject (Python list).\n* \u2713 Valgrind passed on `d3d8c12`.\n\n\u26a0\ufe0f elkai takes the **global interpreter lock (GIL)** during the solving phase which means two threads cannot solve problems at the same time. If you want to run other workloads at the same time, you have to run another process - for example by using the `multiprocessing` module.\n\nIf there isn't a prebuilt wheel for your platform, you'll have to follow the `scikit-build` process.",
    "bugtrack_url": null,
    "license": "elkai License",
    "summary": "elkai is a Python library for solving travelling salesman problems (TSP) based on LKH 3",
    "version": "2.0.1",
    "project_urls": null,
    "split_keywords": [
        "tsp",
        "travelling",
        "salesman",
        "problem",
        "solver",
        "atsp",
        "salesman",
        "travelling",
        "problem"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "ebf95038eee9504fccd5d77c181b80cdf1da360200b82907dcaf079bea3bdbac",
                "md5": "c07d57b36734e20cd20a934ea40246b3",
                "sha256": "66c85d0ed8b31bcb114a320372b6e7a5651815d94d00bbc157cd893c4e9ac6ef"
            },
            "downloads": -1,
            "filename": "elkai-2.0.1-cp310-cp310-macosx_12_0_x86_64.whl",
            "has_sig": false,
            "md5_digest": "c07d57b36734e20cd20a934ea40246b3",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.7",
            "size": 204908,
            "upload_time": "2023-05-09T17:22:43",
            "upload_time_iso_8601": "2023-05-09T17:22:43.297844Z",
            "url": "https://files.pythonhosted.org/packages/eb/f9/5038eee9504fccd5d77c181b80cdf1da360200b82907dcaf079bea3bdbac/elkai-2.0.1-cp310-cp310-macosx_12_0_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "09813fb5637f892022f69d7d6a83ff1f95354a5376c4da15b86f2ca97ffdbab0",
                "md5": "4fa22e9708d6c35e3cc959ad98eca0b1",
                "sha256": "61afde5a687f6cb4a41af710b308eaafe3ef7ef8c4c3e0ce3a1e1ae5d395f48e"
            },
            "downloads": -1,
            "filename": "elkai-2.0.1-cp310-cp310-macosx_13_0_arm64.whl",
            "has_sig": false,
            "md5_digest": "4fa22e9708d6c35e3cc959ad98eca0b1",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.7",
            "size": 189944,
            "upload_time": "2023-05-09T17:17:17",
            "upload_time_iso_8601": "2023-05-09T17:17:17.155206Z",
            "url": "https://files.pythonhosted.org/packages/09/81/3fb5637f892022f69d7d6a83ff1f95354a5376c4da15b86f2ca97ffdbab0/elkai-2.0.1-cp310-cp310-macosx_13_0_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "2ccb97afba712f0bda55bd0d95fd33d31ee6429e133a77375e2b4e4cd26d6e96",
                "md5": "635c99860bab23fb77c260ed0ed4425d",
                "sha256": "b71b5b03286288c2cdb27bb3d18fcf1710e8371125affcfdd91495c2bc4d501b"
            },
            "downloads": -1,
            "filename": "elkai-2.0.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "635c99860bab23fb77c260ed0ed4425d",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.7",
            "size": 229312,
            "upload_time": "2023-05-09T17:23:40",
            "upload_time_iso_8601": "2023-05-09T17:23:40.100036Z",
            "url": "https://files.pythonhosted.org/packages/2c/cb/97afba712f0bda55bd0d95fd33d31ee6429e133a77375e2b4e4cd26d6e96/elkai-2.0.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "cd5c1e7bde6ca78f6d8f12dab8684a301ab40fcca670313bf085c23d07a47b7d",
                "md5": "55e9635fd373c125184b6996d7294089",
                "sha256": "62590df53d3207e7d2b05faf5d45eddcbbb1d2c255614907d450aab903b20611"
            },
            "downloads": -1,
            "filename": "elkai-2.0.1-cp310-cp310-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "55e9635fd373c125184b6996d7294089",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.7",
            "size": 158864,
            "upload_time": "2023-05-09T17:22:45",
            "upload_time_iso_8601": "2023-05-09T17:22:45.940902Z",
            "url": "https://files.pythonhosted.org/packages/cd/5c/1e7bde6ca78f6d8f12dab8684a301ab40fcca670313bf085c23d07a47b7d/elkai-2.0.1-cp310-cp310-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "b9ad32bec43e3133751b8675a4ec78ccb709c437acee181d728667f5bd45c921",
                "md5": "17ed68288695505cabbc693bac41b710",
                "sha256": "0020189976045beca79495b6ddb9f3e3f2970290efc8cc8a3954eb7579304325"
            },
            "downloads": -1,
            "filename": "elkai-2.0.1-cp311-cp311-macosx_12_0_x86_64.whl",
            "has_sig": false,
            "md5_digest": "17ed68288695505cabbc693bac41b710",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.7",
            "size": 204910,
            "upload_time": "2023-05-09T17:22:47",
            "upload_time_iso_8601": "2023-05-09T17:22:47.990698Z",
            "url": "https://files.pythonhosted.org/packages/b9/ad/32bec43e3133751b8675a4ec78ccb709c437acee181d728667f5bd45c921/elkai-2.0.1-cp311-cp311-macosx_12_0_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "2e35672bb00e2946f7b27f92f6f5b24bf7ca67b8f331a6b4415f6dce1a2093e2",
                "md5": "4e4d9dca7e39ac75e6c1ad5ad75bcb11",
                "sha256": "795df6b51c89a628bc8425443eaf8fd0df37ace76fa3f2effb9567a5fd16f53e"
            },
            "downloads": -1,
            "filename": "elkai-2.0.1-cp311-cp311-macosx_13_0_arm64.whl",
            "has_sig": false,
            "md5_digest": "4e4d9dca7e39ac75e6c1ad5ad75bcb11",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.7",
            "size": 189942,
            "upload_time": "2023-05-09T17:18:54",
            "upload_time_iso_8601": "2023-05-09T17:18:54.376074Z",
            "url": "https://files.pythonhosted.org/packages/2e/35/672bb00e2946f7b27f92f6f5b24bf7ca67b8f331a6b4415f6dce1a2093e2/elkai-2.0.1-cp311-cp311-macosx_13_0_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "ddbcfbc745554da2f4b6387d9e554d97b86bf0b8a9ebbc6f57917723770d18d4",
                "md5": "3351f8ab17e78ed3fdc6dd7578bf37ec",
                "sha256": "5110f1845f2e83424e5e1e1e154a87f23c5f6a62d25366aa5fb8f4020c52a1b9"
            },
            "downloads": -1,
            "filename": "elkai-2.0.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "3351f8ab17e78ed3fdc6dd7578bf37ec",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.7",
            "size": 229311,
            "upload_time": "2023-05-09T17:23:44",
            "upload_time_iso_8601": "2023-05-09T17:23:44.197281Z",
            "url": "https://files.pythonhosted.org/packages/dd/bc/fbc745554da2f4b6387d9e554d97b86bf0b8a9ebbc6f57917723770d18d4/elkai-2.0.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "c73e853ef88f4ed6e362098a073bd054d332ad4d43f9ac9c228b313eb08f791b",
                "md5": "7e024e2b46c6590d721b1bb5490d69b9",
                "sha256": "0b0b0c8e3e99577322f5f36b9e6bcb57444bffc2a1555a041fb9b0e3c8813d0c"
            },
            "downloads": -1,
            "filename": "elkai-2.0.1-cp311-cp311-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "7e024e2b46c6590d721b1bb5490d69b9",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.7",
            "size": 158863,
            "upload_time": "2023-05-09T17:22:50",
            "upload_time_iso_8601": "2023-05-09T17:22:50.337649Z",
            "url": "https://files.pythonhosted.org/packages/c7/3e/853ef88f4ed6e362098a073bd054d332ad4d43f9ac9c228b313eb08f791b/elkai-2.0.1-cp311-cp311-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "c6f74a971ec200ee8ec328c99ed7d17418f69046ead106c697c41927d4b8cc8b",
                "md5": "774141347a6c9666c90d90c17e2642e2",
                "sha256": "093b97ffabbeecc802adc93594843cc6115ed149b6dc09d1c9ddf15e86f934b1"
            },
            "downloads": -1,
            "filename": "elkai-2.0.1-cp37-cp37m-macosx_10_16_x86_64.whl",
            "has_sig": false,
            "md5_digest": "774141347a6c9666c90d90c17e2642e2",
            "packagetype": "bdist_wheel",
            "python_version": "cp37",
            "requires_python": ">=3.7",
            "size": 204910,
            "upload_time": "2023-05-09T17:22:53",
            "upload_time_iso_8601": "2023-05-09T17:22:53.012207Z",
            "url": "https://files.pythonhosted.org/packages/c6/f7/4a971ec200ee8ec328c99ed7d17418f69046ead106c697c41927d4b8cc8b/elkai-2.0.1-cp37-cp37m-macosx_10_16_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "ea63c395fa4db36c982ad34c78439780fb11101c60363f0f75b1429876df13fb",
                "md5": "b7826332b41ae6d41211b9659fc0d0e3",
                "sha256": "f37405dc29c877e73c061251f26421b2bf982b765785f6fd9689a723755d0018"
            },
            "downloads": -1,
            "filename": "elkai-2.0.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "b7826332b41ae6d41211b9659fc0d0e3",
            "packagetype": "bdist_wheel",
            "python_version": "cp37",
            "requires_python": ">=3.7",
            "size": 229314,
            "upload_time": "2023-05-09T17:23:46",
            "upload_time_iso_8601": "2023-05-09T17:23:46.999969Z",
            "url": "https://files.pythonhosted.org/packages/ea/63/c395fa4db36c982ad34c78439780fb11101c60363f0f75b1429876df13fb/elkai-2.0.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "26cfe7b8de6614df03215015e32def8cef9f088b4064aa0539d7534d48236e33",
                "md5": "42b89eb748093d3605aa3ef9b21ca694",
                "sha256": "16e56434a81ebcde60ac8c2e9742a63971b913e37e1ccbfd4b933ba0fe49f9a4"
            },
            "downloads": -1,
            "filename": "elkai-2.0.1-cp37-cp37m-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "42b89eb748093d3605aa3ef9b21ca694",
            "packagetype": "bdist_wheel",
            "python_version": "cp37",
            "requires_python": ">=3.7",
            "size": 158859,
            "upload_time": "2023-05-09T17:22:55",
            "upload_time_iso_8601": "2023-05-09T17:22:55.661250Z",
            "url": "https://files.pythonhosted.org/packages/26/cf/e7b8de6614df03215015e32def8cef9f088b4064aa0539d7534d48236e33/elkai-2.0.1-cp37-cp37m-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "44632e2b7a7f1b78af9f66f1e9e5e07384b709aa511dcb054104efe16d077fce",
                "md5": "8423a321a96af29cf7694adc9cb474e9",
                "sha256": "7825e298ba04d715602f61b837c91e9ce6f5d3c05cb4c9d745cad602f51a46f2"
            },
            "downloads": -1,
            "filename": "elkai-2.0.1-cp38-cp38-macosx_10_16_x86_64.whl",
            "has_sig": false,
            "md5_digest": "8423a321a96af29cf7694adc9cb474e9",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": ">=3.7",
            "size": 204908,
            "upload_time": "2023-05-09T17:22:57",
            "upload_time_iso_8601": "2023-05-09T17:22:57.872666Z",
            "url": "https://files.pythonhosted.org/packages/44/63/2e2b7a7f1b78af9f66f1e9e5e07384b709aa511dcb054104efe16d077fce/elkai-2.0.1-cp38-cp38-macosx_10_16_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "83265b7aa5388bd48b98d6dab4d25782dd26e2189b117e4908df7d12f4dc9fe8",
                "md5": "a4a653694b07fa87e04ce802ec567e51",
                "sha256": "b3d046c382838b6e195620a9cc1dbbebff0d21a8564cf13e13464300b389fb8b"
            },
            "downloads": -1,
            "filename": "elkai-2.0.1-cp38-cp38-macosx_13_0_arm64.whl",
            "has_sig": false,
            "md5_digest": "a4a653694b07fa87e04ce802ec567e51",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": ">=3.7",
            "size": 189945,
            "upload_time": "2023-05-09T17:14:55",
            "upload_time_iso_8601": "2023-05-09T17:14:55.685558Z",
            "url": "https://files.pythonhosted.org/packages/83/26/5b7aa5388bd48b98d6dab4d25782dd26e2189b117e4908df7d12f4dc9fe8/elkai-2.0.1-cp38-cp38-macosx_13_0_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "dc15b06fc4765a92e0727f2cd4ba54526d09a46148768441d4a320f83fff7840",
                "md5": "06790ceb96cbd20c58fc70dc2d1e4d98",
                "sha256": "ee99338cb3a370ba8be2e3fb750e231f21c28bbf05bb8908bad9e256fdaaa437"
            },
            "downloads": -1,
            "filename": "elkai-2.0.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "06790ceb96cbd20c58fc70dc2d1e4d98",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": ">=3.7",
            "size": 229312,
            "upload_time": "2023-05-09T17:23:49",
            "upload_time_iso_8601": "2023-05-09T17:23:49.978925Z",
            "url": "https://files.pythonhosted.org/packages/dc/15/b06fc4765a92e0727f2cd4ba54526d09a46148768441d4a320f83fff7840/elkai-2.0.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "756e8e1ea710257184127201c64fca1b4f206299285cac1ade0e1424097948af",
                "md5": "f87133381391d9d8dd70eae56243eabb",
                "sha256": "221c0f884386770cc0958f6d8b8573b9cb66b8b3d993dcb8329b26710a09e401"
            },
            "downloads": -1,
            "filename": "elkai-2.0.1-cp38-cp38-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "f87133381391d9d8dd70eae56243eabb",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": ">=3.7",
            "size": 158862,
            "upload_time": "2023-05-09T17:23:00",
            "upload_time_iso_8601": "2023-05-09T17:23:00.967578Z",
            "url": "https://files.pythonhosted.org/packages/75/6e/8e1ea710257184127201c64fca1b4f206299285cac1ade0e1424097948af/elkai-2.0.1-cp38-cp38-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "76efaccc9d062078005232ff428bff8ac4e4d128a13eac06126ebc83a73d0d20",
                "md5": "6b7af7b46d7100b10c32ae1f61c4701b",
                "sha256": "4ae47bb761928a80e4ec50387ce21f757ef665575b3b4cde85774e7dad513025"
            },
            "downloads": -1,
            "filename": "elkai-2.0.1-cp39-cp39-macosx_12_0_x86_64.whl",
            "has_sig": false,
            "md5_digest": "6b7af7b46d7100b10c32ae1f61c4701b",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.7",
            "size": 204909,
            "upload_time": "2023-05-09T17:23:03",
            "upload_time_iso_8601": "2023-05-09T17:23:03.471706Z",
            "url": "https://files.pythonhosted.org/packages/76/ef/accc9d062078005232ff428bff8ac4e4d128a13eac06126ebc83a73d0d20/elkai-2.0.1-cp39-cp39-macosx_12_0_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "5e1b705909e941ee8b6c0ac59cd58c9debf2670797dfdad37f42471d315e969d",
                "md5": "8739c9b41d1ca29b4395738ace2fd42d",
                "sha256": "90cbe996ce6a6a07e1875fb3912674d715bd67c24d60973288a89d3f339aea3a"
            },
            "downloads": -1,
            "filename": "elkai-2.0.1-cp39-cp39-macosx_13_0_arm64.whl",
            "has_sig": false,
            "md5_digest": "8739c9b41d1ca29b4395738ace2fd42d",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.7",
            "size": 189942,
            "upload_time": "2023-05-09T17:15:04",
            "upload_time_iso_8601": "2023-05-09T17:15:04.227116Z",
            "url": "https://files.pythonhosted.org/packages/5e/1b/705909e941ee8b6c0ac59cd58c9debf2670797dfdad37f42471d315e969d/elkai-2.0.1-cp39-cp39-macosx_13_0_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "d6fd82eda1864539b7e62225d4ca2f9220bfda280c620131252278a48f715602",
                "md5": "86e8125c513100482ba6292860e5f32a",
                "sha256": "9af53cb126080a9e8c6e802121cad43a7d4b75431aae73d75e3e3588ca5fa893"
            },
            "downloads": -1,
            "filename": "elkai-2.0.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "86e8125c513100482ba6292860e5f32a",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.7",
            "size": 229314,
            "upload_time": "2023-05-09T17:23:53",
            "upload_time_iso_8601": "2023-05-09T17:23:53.034575Z",
            "url": "https://files.pythonhosted.org/packages/d6/fd/82eda1864539b7e62225d4ca2f9220bfda280c620131252278a48f715602/elkai-2.0.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "900e2de87c0770f9939fd4fe6ac5419976e29652e1b409803fae600ea2d328b4",
                "md5": "5e14096a83f1863baef7923fe10509f4",
                "sha256": "1d8204b85fc960d2619c280e6143b14c1b62e09c532b388fff51e40e18404ba4"
            },
            "downloads": -1,
            "filename": "elkai-2.0.1.tar.gz",
            "has_sig": false,
            "md5_digest": "5e14096a83f1863baef7923fe10509f4",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.7",
            "size": 227659,
            "upload_time": "2023-05-09T17:15:08",
            "upload_time_iso_8601": "2023-05-09T17:15:08.752794Z",
            "url": "https://files.pythonhosted.org/packages/90/0e/2de87c0770f9939fd4fe6ac5419976e29652e1b409803fae600ea2d328b4/elkai-2.0.1.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2023-05-09 17:15:08",
    "github": false,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "lcname": "elkai"
}
        
Elapsed time: 0.06747s