7 files were added to this release more than 14 days after its initial publication. Inspect the release files before installing.
elkai - a Python library for solving TSP problems
- based on LKH by Keld Helsgaun: with proven optimal solutions up to N=315 and more accurate results than Google's OR tools
- asymmetric and symmetric travelling salesman problems support
- clean and simple API: get results with one line calls
Installation
💾 To install it run pip install elkai
Example usage
import elkai
cities = elkai.Coordinates2D({
'city1': (0, 0),
'city2': (0, 4),
'city3': (5, 0)
})
print(cities.solve_tsp())
import elkai
cities = elkai.DistanceMatrix([
[0, 4, 0],
[0, 0, 5],
[0, 0, 0]
])
print(cities.solve_tsp())
Note
solve_int_matrix and solve_float_matrix 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
Tourvariable 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.
Metadata
Release files for elkai 2.0.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Files added late
7 files were uploaded more than 14 days after the first file in this release.
While project maintainers occasionally add legitimate files to an existing release, late additions can also indicate a security compromise.
We recommend inspecting the release files before installing.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| elkai-2.0.1.tar.gz | 227.7 kB | Details |
Built distributions (wheels)
Total release size: 5.1 MB
Release files / elkai-2.0.1.tar.gz
| Download URL | elkai-2.0.1.tar.gz |
|---|---|
| Size | 227.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
1d8204b85fc960d2619c280e6143b14c1b62e09c532b388fff51e40e18404ba4
|
|
BLAKE2b-256 checksum How to use checksums |
900e2de87c0770f9939fd4fe6ac5419976e29652e1b409803fae600ea2d328b4
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/3.7.1 importlib_metadata/4.12.0 pkginfo/1.8.2 requests/2.27.1 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.9
|
Release files / elkai-2.0.1-cp313-cp313-win_amd64.whl
File added late
This file was uploaded more than 14 days after the first file in this release.
While project maintainers occasionally add legitimate files to an existing release, late additions can also indicate a security compromise.
We recommend inspecting the release file before installing.
| Download URL | elkai-2.0.1-cp313-cp313-win_amd64.whl |
|---|---|
| Size | 158.7 kB |
| Tags | CPython 3.13 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
af646a5400dea7133a9ba93119f27f1a1c1ff1635844a12b0762cdd88e2ea5a8
|
|
BLAKE2b-256 checksum How to use checksums |
322de8392313affd2fab42127dc7d761e63acfbbfe8d48535a129c773e00c3bc
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.0.1 CPython/3.10.15
|
Release files / elkai-2.0.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
File added late
This file was uploaded more than 14 days after the first file in this release.
While project maintainers occasionally add legitimate files to an existing release, late additions can also indicate a security compromise.
We recommend inspecting the release file before installing.
| Download URL | elkai-2.0.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 218.1 kB |
| Tags | CPython 3.13 Linux glibc 2.17+ x86-64 |
|
SHA-256 checksum How to use checksums |
83f4c113d0385112b3339c7233be261c11a855ba8f0c16e5970a16748305d06d
|
|
BLAKE2b-256 checksum How to use checksums |
5d80789fa4b8c7b3b847ab8995c6b93ca8ab31a655b5874c7226bcdfcef82a5c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.0.1 CPython/3.10.15
|
Release files / elkai-2.0.1-cp313-cp313-macosx_14_0_arm64.whl
File added late
This file was uploaded more than 14 days after the first file in this release.
While project maintainers occasionally add legitimate files to an existing release, late additions can also indicate a security compromise.
We recommend inspecting the release file before installing.
| Download URL | elkai-2.0.1-cp313-cp313-macosx_14_0_arm64.whl |
|---|---|
| Size | 185.0 kB |
| Tags | CPython 3.13 macOS 14.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
1244b650bcbabec90f3c5b599f6b8334dfbc8a4b5c222131300b5b27d93b0639
|
|
BLAKE2b-256 checksum How to use checksums |
89002e6c2c0240b98c841143bb31b3af068b02213ca9618bca4267defa55d18e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.0.1 CPython/3.10.15
|
Release files / elkai-2.0.1-cp312-cp312-win_amd64.whl
File added late
This file was uploaded more than 14 days after the first file in this release.
While project maintainers occasionally add legitimate files to an existing release, late additions can also indicate a security compromise.
We recommend inspecting the release file before installing.
| Download URL | elkai-2.0.1-cp312-cp312-win_amd64.whl |
|---|---|
| Size | 158.8 kB |
| Tags | CPython 3.12 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
b8e17561bed5d5da93a4c0a68639994ccc1c855ecec2e9dc9be6fa5663a3f5fc
|
|
BLAKE2b-256 checksum How to use checksums |
2c370228f2cc9d2cea79e870460c3197931ab9e7256e88d4d5439e34f620b33d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.0.1 CPython/3.10.15
|
Release files / elkai-2.0.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
File added late
This file was uploaded more than 14 days after the first file in this release.
While project maintainers occasionally add legitimate files to an existing release, late additions can also indicate a security compromise.
We recommend inspecting the release file before installing.
| Download URL | elkai-2.0.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 218.1 kB |
| Tags | CPython 3.12 Linux glibc 2.17+ x86-64 |
|
SHA-256 checksum How to use checksums |
f32a4cf5f0d42024d7b537699a57e055be2c2d99b5edcff1d69a77761ce07b43
|
|
BLAKE2b-256 checksum How to use checksums |
ed0b5812f89c74c9391b94362115a3f3a908b62aa1eb5754d9769c308b900c04
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.0.1 CPython/3.10.15
|
Release files / elkai-2.0.1-cp312-cp312-macosx_14_0_arm64.whl
File added late
This file was uploaded more than 14 days after the first file in this release.
While project maintainers occasionally add legitimate files to an existing release, late additions can also indicate a security compromise.
We recommend inspecting the release file before installing.
| Download URL | elkai-2.0.1-cp312-cp312-macosx_14_0_arm64.whl |
|---|---|
| Size | 185.0 kB |
| Tags | CPython 3.12 macOS 14.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
ad27a437b57d7ed26212447099062b713352897307f2ea1c990874151a63bc7f
|
|
BLAKE2b-256 checksum How to use checksums |
dbcc0c591bcb33bf8b7968ad9fb4b7707786eeace03fef9a109839b022a94c81
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.0.1 CPython/3.10.15
|
Release files / elkai-2.0.1-cp311-cp311-win_amd64.whl
| Download URL | elkai-2.0.1-cp311-cp311-win_amd64.whl |
|---|---|
| Size | 158.9 kB |
| Tags | CPython 3.11 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
0b0b0c8e3e99577322f5f36b9e6bcb57444bffc2a1555a041fb9b0e3c8813d0c
|
|
BLAKE2b-256 checksum How to use checksums |
c73e853ef88f4ed6e362098a073bd054d332ad4d43f9ac9c228b313eb08f791b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.2 CPython/3.11.0rc2
|
Release files / elkai-2.0.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | elkai-2.0.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 229.3 kB |
| Tags | CPython 3.11 Linux glibc 2.17+ x86-64 |
|
SHA-256 checksum How to use checksums |
5110f1845f2e83424e5e1e1e154a87f23c5f6a62d25366aa5fb8f4020c52a1b9
|
|
BLAKE2b-256 checksum How to use checksums |
ddbcfbc745554da2f4b6387d9e554d97b86bf0b8a9ebbc6f57917723770d18d4
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.2 CPython/3.11.0rc2
|
Release files / elkai-2.0.1-cp311-cp311-macosx_13_0_arm64.whl
| Download URL | elkai-2.0.1-cp311-cp311-macosx_13_0_arm64.whl |
|---|---|
| Size | 189.9 kB |
| Tags | CPython 3.11 macOS 13.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
795df6b51c89a628bc8425443eaf8fd0df37ace76fa3f2effb9567a5fd16f53e
|
|
BLAKE2b-256 checksum How to use checksums |
2e35672bb00e2946f7b27f92f6f5b24bf7ca67b8f331a6b4415f6dce1a2093e2
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.2 CPython/3.11.0rc2
|
Release files / elkai-2.0.1-cp311-cp311-macosx_12_0_x86_64.whl
| Download URL | elkai-2.0.1-cp311-cp311-macosx_12_0_x86_64.whl |
|---|---|
| Size | 204.9 kB |
| Tags | CPython 3.11 macOS 12.0+ x86-64 |
|
SHA-256 checksum How to use checksums |
0020189976045beca79495b6ddb9f3e3f2970290efc8cc8a3954eb7579304325
|
|
BLAKE2b-256 checksum How to use checksums |
b9ad32bec43e3133751b8675a4ec78ccb709c437acee181d728667f5bd45c921
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.2 CPython/3.11.0rc2
|
Release files / elkai-2.0.1-cp310-cp310-win_amd64.whl
| Download URL | elkai-2.0.1-cp310-cp310-win_amd64.whl |
|---|---|
| Size | 158.9 kB |
| Tags | CPython 3.10 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
62590df53d3207e7d2b05faf5d45eddcbbb1d2c255614907d450aab903b20611
|
|
BLAKE2b-256 checksum How to use checksums |
cd5c1e7bde6ca78f6d8f12dab8684a301ab40fcca670313bf085c23d07a47b7d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.2 CPython/3.11.0rc2
|
Release files / elkai-2.0.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | elkai-2.0.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 229.3 kB |
| Tags | CPython 3.10 Linux glibc 2.17+ x86-64 |
|
SHA-256 checksum How to use checksums |
b71b5b03286288c2cdb27bb3d18fcf1710e8371125affcfdd91495c2bc4d501b
|
|
BLAKE2b-256 checksum How to use checksums |
2ccb97afba712f0bda55bd0d95fd33d31ee6429e133a77375e2b4e4cd26d6e96
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.2 CPython/3.11.0rc2
|
Release files / elkai-2.0.1-cp310-cp310-macosx_13_0_arm64.whl
| Download URL | elkai-2.0.1-cp310-cp310-macosx_13_0_arm64.whl |
|---|---|
| Size | 189.9 kB |
| Tags | CPython 3.10 macOS 13.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
61afde5a687f6cb4a41af710b308eaafe3ef7ef8c4c3e0ce3a1e1ae5d395f48e
|
|
BLAKE2b-256 checksum How to use checksums |
09813fb5637f892022f69d7d6a83ff1f95354a5376c4da15b86f2ca97ffdbab0
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.2 CPython/3.10.1
|
Release files / elkai-2.0.1-cp310-cp310-macosx_12_0_x86_64.whl
| Download URL | elkai-2.0.1-cp310-cp310-macosx_12_0_x86_64.whl |
|---|---|
| Size | 204.9 kB |
| Tags | CPython 3.10 macOS 12.0+ x86-64 |
|
SHA-256 checksum How to use checksums |
66c85d0ed8b31bcb114a320372b6e7a5651815d94d00bbc157cd893c4e9ac6ef
|
|
BLAKE2b-256 checksum How to use checksums |
ebf95038eee9504fccd5d77c181b80cdf1da360200b82907dcaf079bea3bdbac
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.2 CPython/3.11.0rc2
|
Release files / elkai-2.0.1-cp39-cp39-win_amd64.whl
File added late
This file was uploaded more than 14 days after the first file in this release.
While project maintainers occasionally add legitimate files to an existing release, late additions can also indicate a security compromise.
We recommend inspecting the release file before installing.
| Download URL | elkai-2.0.1-cp39-cp39-win_amd64.whl |
|---|---|
| Size | 158.9 kB |
| Tags | CPython 3.9 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
2b4b68ee236d2c516d8637c190da937719d5730d29d86e2a0b43e0d4a35f6fd1
|
|
BLAKE2b-256 checksum How to use checksums |
cd31824ec5c3af4b1111ed58829f094db1cb6e83229157dc2db471f22ce54e43
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/3.7.1 importlib_metadata/4.12.0 pkginfo/1.8.2 requests/2.27.1 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.9
|
Release files / elkai-2.0.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | elkai-2.0.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 229.3 kB |
| Tags | CPython 3.9 Linux glibc 2.17+ x86-64 |
|
SHA-256 checksum How to use checksums |
9af53cb126080a9e8c6e802121cad43a7d4b75431aae73d75e3e3588ca5fa893
|
|
BLAKE2b-256 checksum How to use checksums |
d6fd82eda1864539b7e62225d4ca2f9220bfda280c620131252278a48f715602
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.2 CPython/3.11.0rc2
|
Release files / elkai-2.0.1-cp39-cp39-macosx_13_0_arm64.whl
| Download URL | elkai-2.0.1-cp39-cp39-macosx_13_0_arm64.whl |
|---|---|
| Size | 189.9 kB |
| Tags | CPython 3.9 macOS 13.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
90cbe996ce6a6a07e1875fb3912674d715bd67c24d60973288a89d3f339aea3a
|
|
BLAKE2b-256 checksum How to use checksums |
5e1b705909e941ee8b6c0ac59cd58c9debf2670797dfdad37f42471d315e969d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/3.7.1 importlib_metadata/4.12.0 pkginfo/1.8.2 requests/2.27.1 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.9
|
Release files / elkai-2.0.1-cp39-cp39-macosx_12_0_x86_64.whl
| Download URL | elkai-2.0.1-cp39-cp39-macosx_12_0_x86_64.whl |
|---|---|
| Size | 204.9 kB |
| Tags | CPython 3.9 macOS 12.0+ x86-64 |
|
SHA-256 checksum How to use checksums |
4ae47bb761928a80e4ec50387ce21f757ef665575b3b4cde85774e7dad513025
|
|
BLAKE2b-256 checksum How to use checksums |
76efaccc9d062078005232ff428bff8ac4e4d128a13eac06126ebc83a73d0d20
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.2 CPython/3.11.0rc2
|
Release files / elkai-2.0.1-cp38-cp38-win_amd64.whl
| Download URL | elkai-2.0.1-cp38-cp38-win_amd64.whl |
|---|---|
| Size | 158.9 kB |
| Tags | CPython 3.8 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
221c0f884386770cc0958f6d8b8573b9cb66b8b3d993dcb8329b26710a09e401
|
|
BLAKE2b-256 checksum How to use checksums |
756e8e1ea710257184127201c64fca1b4f206299285cac1ade0e1424097948af
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.2 CPython/3.11.0rc2
|
Release files / elkai-2.0.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | elkai-2.0.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 229.3 kB |
| Tags | CPython 3.8 Linux glibc 2.17+ x86-64 |
|
SHA-256 checksum How to use checksums |
ee99338cb3a370ba8be2e3fb750e231f21c28bbf05bb8908bad9e256fdaaa437
|
|
BLAKE2b-256 checksum How to use checksums |
dc15b06fc4765a92e0727f2cd4ba54526d09a46148768441d4a320f83fff7840
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.2 CPython/3.11.0rc2
|
Release files / elkai-2.0.1-cp38-cp38-macosx_13_0_arm64.whl
| Download URL | elkai-2.0.1-cp38-cp38-macosx_13_0_arm64.whl |
|---|---|
| Size | 189.9 kB |
| Tags | CPython 3.8 macOS 13.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
b3d046c382838b6e195620a9cc1dbbebff0d21a8564cf13e13464300b389fb8b
|
|
BLAKE2b-256 checksum How to use checksums |
83265b7aa5388bd48b98d6dab4d25782dd26e2189b117e4908df7d12f4dc9fe8
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/3.7.1 importlib_metadata/4.12.0 pkginfo/1.8.2 requests/2.27.1 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.9
|
Release files / elkai-2.0.1-cp38-cp38-macosx_10_16_x86_64.whl
| Download URL | elkai-2.0.1-cp38-cp38-macosx_10_16_x86_64.whl |
|---|---|
| Size | 204.9 kB |
| Tags | CPython 3.8 macOS 10.16+ x86-64 |
|
SHA-256 checksum How to use checksums |
7825e298ba04d715602f61b837c91e9ce6f5d3c05cb4c9d745cad602f51a46f2
|
|
BLAKE2b-256 checksum How to use checksums |
44632e2b7a7f1b78af9f66f1e9e5e07384b709aa511dcb054104efe16d077fce
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.2 CPython/3.11.0rc2
|
Release files / elkai-2.0.1-cp37-cp37m-win_amd64.whl
| Download URL | elkai-2.0.1-cp37-cp37m-win_amd64.whl |
|---|---|
| Size | 158.9 kB |
| Tags | CPython 3.7 CPython 3.7 pymalloc Windows x86-64 |
|
SHA-256 checksum How to use checksums |
16e56434a81ebcde60ac8c2e9742a63971b913e37e1ccbfd4b933ba0fe49f9a4
|
|
BLAKE2b-256 checksum How to use checksums |
26cfe7b8de6614df03215015e32def8cef9f088b4064aa0539d7534d48236e33
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.2 CPython/3.11.0rc2
|
Release files / elkai-2.0.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | elkai-2.0.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 229.3 kB |
| Tags | CPython 3.7 CPython 3.7 pymalloc Linux glibc 2.17+ x86-64 |
|
SHA-256 checksum How to use checksums |
f37405dc29c877e73c061251f26421b2bf982b765785f6fd9689a723755d0018
|
|
BLAKE2b-256 checksum How to use checksums |
ea63c395fa4db36c982ad34c78439780fb11101c60363f0f75b1429876df13fb
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.2 CPython/3.11.0rc2
|
Release files / elkai-2.0.1-cp37-cp37m-macosx_10_16_x86_64.whl
| Download URL | elkai-2.0.1-cp37-cp37m-macosx_10_16_x86_64.whl |
|---|---|
| Size | 204.9 kB |
| Tags | CPython 3.7 CPython 3.7 pymalloc macOS 10.16+ x86-64 |
|
SHA-256 checksum How to use checksums |
093b97ffabbeecc802adc93594843cc6115ed149b6dc09d1c9ddf15e86f934b1
|
|
BLAKE2b-256 checksum How to use checksums |
c6f74a971ec200ee8ec328c99ed7d17418f69046ead106c697c41927d4b8cc8b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.2 CPython/3.11.0rc2
|