Metadata-Version: 2.4
Name: mamut-routing-tools
Version: 0.1.0
Summary: Local generation tool suite for MAMUT-routing: OSM acquisition, road-graph engine, route geometry, and CVRP/VRPTW instance generation.
Project-URL: Repository, https://github.com/ANR-MAMUT/MAMUT-routing-tools
Project-URL: Website, https://mamut-routing.univ-ubs.fr/
Author: Adrien Pichon
Author-email: Florian Rascoussier <onyr.maintainer@gmail.com>
License-Expression: MIT
License-File: LICENSE
Keywords: CVRP,OSM,OpenStreetMap,VRP,VRPTW,benchmarking,instance generation,operations research,road network,vehicle routing problem
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Science/Research
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Scientific/Engineering
Requires-Python: >=3.11
Requires-Dist: httpx>=0.27
Requires-Dist: mamut-routing-lib
Requires-Dist: numpy>=1.26
Requires-Dist: pydantic>=2.7
Requires-Dist: rustworkx>=0.15
Requires-Dist: scipy>=1.13
Requires-Dist: typer>=0.12
Description-Content-Type: text/markdown

# MAMUT-routing-tools

Local generation tool suite for the [MAMUT-routing](https://github.com/ANR-MAMUT/MAMUT-routing) benchmark project: OSM city acquisition, a road-graph engine, BKS route-geometry materialization, and interactive CVRP/VRPTW instance generation. The public MAMUT-routing website is fully static; everything compute-heavy lives here and runs on your own machine.

Part of the [ANR MAMUT project](https://mamut.roadef.org/).

## Status

Beta. The tool suite is being extracted from the website's former Julia backend; interfaces may change between releases.

## Components

- `mamut-tools roadgraph`: build and inspect drivable road graphs from OSM XML extracts. The construction is a faithful Python port of the OpenStreetMapX.jl pipeline the project previously used (same road classes, oneway rules, intersection segmentation, ENU distances, and strongly-connected trim), so graphs and route geometry stay consistent with previously published data.
- `mamut-tools geometry`: materialize road-following polylines for best-known solutions, in the exact artifact format the MAMUT-routing website consumes.
- Planned: OSM city fetch (Nominatim + Overpass), interactive CVRP/VRPTW generation with a local workbench GUI, and the official time-dependent benchmark campaign pipeline.

## Install

Requires Python >= 3.11 and [uv](https://github.com/astral-sh/uv).

```bash
git clone --recurse-submodules https://github.com/ANR-MAMUT/MAMUT-routing-tools.git
cd MAMUT-routing-tools
uv sync
uv run mamut-tools --help
```

The `MAMUT-routing-lib` contract library is vendored as a git submodule and installed as an editable dependency.

## Quick examples

```bash
# Road-graph statistics for a city extract
uv run mamut-tools roadgraph info path/to/City.osm

# Materialize a route-geometry group plan (website build contract)
uv run mamut-tools geometry materialize-plan plan.json --repo-root path/to/MAMUT-routing --result-dir out/
```
