A state-of-the-art vehicle routing problem solver.
Project description
⚠️⚠️⚠️ This package is under heavy development - expect things to break! ⚠️⚠️⚠️
PyVRP
The pyvrp
package is an open-source, state-of-the-art vehicle routing problem solver.
Local installation
You will need a recent/modern C++ compiler. Any recent version of gcc, clang, or msvc should do. We also use poetry extensively. If you do not have poetry, you can get it via
pip install poetry
Now we need to install all dependencies into the local environment:
poetry install
This command does two things: first, it installs all dependencies that are required for developing pyvrp
.
Second, it installs the pyvrp
package in editable mode in the poetry environment.
Setting up the poetry environment and installing the pyvrp
package takes a little while, but most of it only needs to be done once.
When the command finishes, you can verify everything went correctly by running
poetry run pytest
If all tests pass without errors, you have a working installation of the codebase.
From this point onwards, recompilation of the C++ extensions can best be done using the build_extensions.py
script.
It can be called as
poetry run python build_extensions.py
It takes several optional build arguments, which you can discover using
poetry run python build_extensions.py --help
Details
We use the Meson build system to compile the C++ extensions.
Meson is configured using the meson.build
file in the repository root.
You should not have to touch this file often: all installation is handled via the build_extensions.py
script.
For deployment, we use the pypa/build
frontend, which calls into the build_extensions.py
file as defined under [build-system]
in `pyproject.toml.
You can also compile for different problem types.
Currently, cvrp
and vrptw
are supported.
This is achieved by passing --problem <type>
to the build_extensions.py
script.
The default is vrptw
.
Build system
Any recent compiler should do. We test using clang 12 and up, and gcc 10 and up.
Any recent Python version should do. We test using Python 3.8 and up (currently 3.8 - 3.11).
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distributions
Hashes for pyvrp-0.0.3a1-cp311-cp311-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 97465e99a671f080905f617ea62af35a4bfbe329e1df651235f1158d16b15b8f |
|
MD5 | 6fd80c1d0a4facd4920f9dd64a7120f8 |
|
BLAKE2b-256 | 8a08c10a6e02f5b6ffcc4368721e87298d16a7d5c9ebbf5837a28f72a6100c4c |
Hashes for pyvrp-0.0.3a1-cp311-cp311-musllinux_1_1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 36f3744c212bdbef5d7717e24d80b2010f1492a66e0c1128fb0daca573b33956 |
|
MD5 | e9d302286f0c93c79fa868361ab395b4 |
|
BLAKE2b-256 | ee51a5bf55caf90e398800a2c6c24b7ecfc993d566e7f1795f018cd3802b8c3f |
Hashes for pyvrp-0.0.3a1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ec5fa352a042230484ddeaa90881f55f0a5ada3bf24df8757bbb7ade3092d307 |
|
MD5 | 680794d51b59972fa29f052cf1b943ec |
|
BLAKE2b-256 | 2522a3ffcabe8ad7966f24aeb0bc208c4b5e9ad491743d40c0a80858f41574a1 |
Hashes for pyvrp-0.0.3a1-cp311-cp311-macosx_11_0_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 07498d7c66c058eeb6a1b700d356ea337b633d612b51ae5120b9cad390d8d962 |
|
MD5 | c613c70392fc089c151be9998532bbcf |
|
BLAKE2b-256 | bc29ab00e59c7c88f60ba40cd906e283ace04be05cbdc451cd4a4aa7196cb01f |
Hashes for pyvrp-0.0.3a1-cp310-cp310-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c2377fdcc100d22622f692ebf6122b418a9570d36131cbb5fd3d9825b5235697 |
|
MD5 | 5b2015fee2786f14c65b013a5fc28cee |
|
BLAKE2b-256 | bc2e13a681a54f5f00f1d72c3a3b1d5052c11b2f0ed3b0f6811b73d7ba7993a7 |
Hashes for pyvrp-0.0.3a1-cp310-cp310-musllinux_1_1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f3f5cac9efbfb552dd73651e2c2959fb47dde51772d9e3bfaa5ab12b3e250ab6 |
|
MD5 | b51c6460bf6be01e5859d6ad56b50c0e |
|
BLAKE2b-256 | 085e376a0bd619e40799dbd30c2fbb225bc534e944f5f7210854745b513f94bf |
Hashes for pyvrp-0.0.3a1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4dc75d3dcaf3df03271cfc4b47bb8a67eaf383d5a469985571a9ef3f07135540 |
|
MD5 | 36469cc985eca4b182d5e145d7c92c26 |
|
BLAKE2b-256 | feea79175a17ae302b1ecadbbdb7d31c2b9bd82d5b7324a3abdc29e4b8c1d085 |
Hashes for pyvrp-0.0.3a1-cp310-cp310-macosx_11_0_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f26149dfaca05d1af1cfbaa468f8a315fbf91298acb9dd405b2f37942ea2d755 |
|
MD5 | 5b4ed0196605174f2198cd7e6fb446c0 |
|
BLAKE2b-256 | 9202bffa453d93f9bc2b2e2223d165533727b7121afe0c9559a0094a4c63cdc7 |
Hashes for pyvrp-0.0.3a1-cp39-cp39-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 514ecb05dd4e9cef45be6bb925c45a62b62e3f591ab8b999edc62ffa4ded632a |
|
MD5 | 6bee50fcf4ba955ecb8e4669aaa8292c |
|
BLAKE2b-256 | bdbf21e9a8b64cdff7769d88cff331d6b086bed34934a63dcac618bf7e959e9b |
Hashes for pyvrp-0.0.3a1-cp39-cp39-musllinux_1_1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d02d6909df256c6a9ef36cf136faf00a52a8113a6efa56d9cc3a44195bc90540 |
|
MD5 | 44046d89a09af5aefd2c47430d132965 |
|
BLAKE2b-256 | 79e939d6cb9ff4e77d74b0c4da2ba59ea24b1a5bc5edd20e98c93d39b15b75a2 |
Hashes for pyvrp-0.0.3a1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d1c66b41a4e5f7a2c715a258e77d63e9574f2152e1fdaa2deccc7a74adf91071 |
|
MD5 | 0e29a511b14de202786a82a6a1c36c34 |
|
BLAKE2b-256 | 384d12f4a2b37a062f8892ff0206585b45f1518e5f3fe5397bc94452cd4f562a |
Hashes for pyvrp-0.0.3a1-cp39-cp39-macosx_11_0_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | bc0229a87366875973183d6392e977425ad07f03a61a73f466c266f388ca1ac6 |
|
MD5 | 0448312a3700000acb81c5b6f6bf8a3d |
|
BLAKE2b-256 | f8169b3f5bf3107c8afe0bb709f13af4d0bab946362ac78cc169629c43a6aad9 |
Hashes for pyvrp-0.0.3a1-cp38-cp38-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | eeeaae30e3c4a93eb6c7ebe6c15e3cacdbf183d635a60a88c9b576994125cd3c |
|
MD5 | 2aaaf73c5bcd84705361af6165761695 |
|
BLAKE2b-256 | ff3058b49f0bf9e265c3bdcff910757a57dde0b8f8d60830bd945ca01ce6c172 |
Hashes for pyvrp-0.0.3a1-cp38-cp38-musllinux_1_1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f3e319ee54f1b5b334fcac5100cc58090884bb62c4cf76e42f19816cd14dbb28 |
|
MD5 | 9f2a12aca29b944fe41d9f9a4a2778e2 |
|
BLAKE2b-256 | 43c3e19040ee9dbf9d51a217dbaedcc9678f311e2e4bc5284bdd8f9676509bb9 |
Hashes for pyvrp-0.0.3a1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | adea943e3988a7dd7459ca2eb8e8054f539163abac0f205f9c88fad8f0f30e80 |
|
MD5 | 5605ee53a7c469f8cd51d0b5ae42b08f |
|
BLAKE2b-256 | b7e3ca3d51f883e34b03beaefe0e6c3fdc6620bfebb7bba9d386ef4393a396b9 |
Hashes for pyvrp-0.0.3a1-cp38-cp38-macosx_11_0_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | bdd679cfb71bc3ae8ad47357ff643e22d37d2c289f4191ec735b622245d66a59 |
|
MD5 | ed56b14a4d658d23d70fcfcf593dd9ab |
|
BLAKE2b-256 | 4960decebad17faa8c60123bd9443efa1774e1974d8451d3ff0638e1868545c4 |