Skip to main content

A state-of-the-art vehicle routing problem solver.

Project description

PyPI version CI Documentation Status codecov

⚠️⚠️⚠️ 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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pyvrp-0.0.3a1.tar.gz (777.9 kB view hashes)

Uploaded Source

Built Distributions

pyvrp-0.0.3a1-cp311-cp311-win_amd64.whl (7.4 MB view hashes)

Uploaded CPython 3.11 Windows x86-64

pyvrp-0.0.3a1-cp311-cp311-musllinux_1_1_x86_64.whl (2.6 MB view hashes)

Uploaded CPython 3.11 musllinux: musl 1.1+ x86-64

pyvrp-0.0.3a1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.5 MB view hashes)

Uploaded CPython 3.11 manylinux: glibc 2.17+ x86-64

pyvrp-0.0.3a1-cp311-cp311-macosx_11_0_x86_64.whl (1.9 MB view hashes)

Uploaded CPython 3.11 macOS 11.0+ x86-64

pyvrp-0.0.3a1-cp310-cp310-win_amd64.whl (7.4 MB view hashes)

Uploaded CPython 3.10 Windows x86-64

pyvrp-0.0.3a1-cp310-cp310-musllinux_1_1_x86_64.whl (2.6 MB view hashes)

Uploaded CPython 3.10 musllinux: musl 1.1+ x86-64

pyvrp-0.0.3a1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.5 MB view hashes)

Uploaded CPython 3.10 manylinux: glibc 2.17+ x86-64

pyvrp-0.0.3a1-cp310-cp310-macosx_11_0_x86_64.whl (1.9 MB view hashes)

Uploaded CPython 3.10 macOS 11.0+ x86-64

pyvrp-0.0.3a1-cp39-cp39-win_amd64.whl (7.4 MB view hashes)

Uploaded CPython 3.9 Windows x86-64

pyvrp-0.0.3a1-cp39-cp39-musllinux_1_1_x86_64.whl (2.6 MB view hashes)

Uploaded CPython 3.9 musllinux: musl 1.1+ x86-64

pyvrp-0.0.3a1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.5 MB view hashes)

Uploaded CPython 3.9 manylinux: glibc 2.17+ x86-64

pyvrp-0.0.3a1-cp39-cp39-macosx_11_0_x86_64.whl (1.9 MB view hashes)

Uploaded CPython 3.9 macOS 11.0+ x86-64

pyvrp-0.0.3a1-cp38-cp38-win_amd64.whl (7.4 MB view hashes)

Uploaded CPython 3.8 Windows x86-64

pyvrp-0.0.3a1-cp38-cp38-musllinux_1_1_x86_64.whl (2.6 MB view hashes)

Uploaded CPython 3.8 musllinux: musl 1.1+ x86-64

pyvrp-0.0.3a1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.5 MB view hashes)

Uploaded CPython 3.8 manylinux: glibc 2.17+ x86-64

pyvrp-0.0.3a1-cp38-cp38-macosx_11_0_x86_64.whl (1.9 MB view hashes)

Uploaded CPython 3.8 macOS 11.0+ x86-64

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page