nextroute 1.8.0.dev2__tar.gz → 1.8.0.dev15__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/.github/workflows/python-test.yml +3 -2
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/.github/workflows/release.yml +36 -10
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/.gitignore +3 -0
- nextroute-1.8.0.dev15/.nextmv/compile_binaries.sh +27 -0
- nextroute-1.8.0.dev15/.prettierrc +15 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/PKG-INFO +44 -5
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/README.md +43 -4
- nextroute-1.8.0.dev15/VERSION +1 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/nextroute/__about__.py +1 -1
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/nextroute/solve.py +5 -1
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/requirements.txt +1 -0
- nextroute-1.8.0.dev15/workflow-configuration.yml +22 -0
- nextroute-1.8.0.dev2/.prettierrc.yml +0 -1
- nextroute-1.8.0.dev2/VERSION +0 -1
- nextroute-1.8.0.dev2/nextroute/bin/nextroute-darwin-amd64 +0 -0
- nextroute-1.8.0.dev2/nextroute/bin/nextroute-darwin-arm64 +0 -0
- nextroute-1.8.0.dev2/nextroute/bin/nextroute-linux-amd64 +0 -0
- nextroute-1.8.0.dev2/nextroute/bin/nextroute-linux-arm64 +0 -0
- nextroute-1.8.0.dev2/nextroute/bin/nextroute-windows-amd64 +0 -0
- nextroute-1.8.0.dev2/nextroute/bin/nextroute-windows-arm64 +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/.github/workflows/go-test-lint.yml +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/.github/workflows/header.yml +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/.github/workflows/json-lint.yml +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/.github/workflows/markdown-lint.yml +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/.github/workflows/python-lint.yml +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/.golangci.yml +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/.nextmv/add_header.py +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/.nextmv/check_header.py +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/LICENSE +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/check/check.go +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/check/doc.go +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/check/format.go +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/check/observer.go +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/check/options.go +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/check/schema/schema.go +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/check/schema.go +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/cmd/.gitignore +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/cmd/input.json +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/cmd/main.go +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/common/alias.go +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/common/alias_test.go +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/common/boundingbox.go +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/common/boundingbox_test.go +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/common/distance.go +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/common/duration.go +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/common/errors/errors.go +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/common/fast_haversine.go +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/common/haversine.go +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/common/intersect.go +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/common/location.go +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/common/location_test.go +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/common/nsmallest.go +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/common/nsmallest_test.go +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/common/rangecheck.go +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/common/rangecheck_test.go +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/common/slices.go +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/common/speed.go +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/common/statistics.go +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/common/statistics_test.go +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/common/utils.go +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/common/utils_test.go +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/doc.go +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/factory/alternates.go +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/factory/constraint_attributes.go +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/factory/constraint_capacity.go +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/factory/constraint_capacity_test.go +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/factory/constraint_cluster.go +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/factory/constraint_distance_limit.go +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/factory/constraint_max_duration.go +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/factory/constraint_max_stops.go +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/factory/constraint_max_wait_stop.go +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/factory/constraint_max_wait_vehicle.go +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/factory/constraint_no_mix.go +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/factory/constraint_shift.go +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/factory/constraint_start_timewindows.go +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/factory/construction.go +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/factory/data.go +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/factory/defaults.go +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/factory/defaults_test.go +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/factory/doc.go +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/factory/duration_groups_expression.go +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/factory/factory.go +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/factory/format.go +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/factory/group.go +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/factory/initialsolution.go +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/factory/model.go +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/factory/objective_activation.go +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/factory/objective_capacity.go +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/factory/objective_cluster.go +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/factory/objective_earliness_lateness.go +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/factory/objective_min_stops.go +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/factory/objective_travel_duration.go +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/factory/objective_unplanned.go +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/factory/objective_vehicles_duration.go +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/factory/plan_units.go +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/factory/precedence.go +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/factory/services.go +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/factory/stops.go +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/factory/validate.go +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/factory/vehicles.go +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/go.mod +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/go.sum +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/model.go +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/model_checkedat.go +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/model_cluster.go +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/model_complexity.go +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/model_constraint.go +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/model_constraint_attributes.go +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/model_constraint_attributes_test.go +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/model_constraint_cluster_test.go +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/model_constraint_maximum_duration.go +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/model_constraint_maximum_duration_test.go +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/model_constraint_maximum_stops.go +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/model_constraint_maximum_stops_test.go +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/model_constraint_maximum_test.go +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/model_constraint_maximum_travel_duration.go +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/model_constraint_maximum_wait_stop.go +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/model_constraint_maximum_wait_stop_test.go +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/model_constraint_maximum_wait_vehicle.go +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/model_constraint_maximum_wait_vehicle_test.go +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/model_constraint_no_mix.go +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/model_constraint_no_mix_test.go +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/model_constraint_successor_test.go +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/model_constraint_successors.go +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/model_data.go +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/model_directed_acyclic_graph.go +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/model_directed_acyclic_graph_test.go +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/model_expression.go +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/model_expression_binary.go +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/model_expression_composed.go +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/model_expression_custom.go +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/model_expression_duration.go +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/model_expression_haversine.go +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/model_expression_measure_byindex.go +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/model_expression_measure_bypoint.go +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/model_expression_sum.go +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/model_expression_time.go +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/model_expression_time_dependent.go +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/model_expression_time_dependent_test.go +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/model_expression_unary.go +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/model_haversine.go +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/model_identifier.go +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/model_latest.go +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/model_latest_test.go +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/model_maximum.go +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/model_objective.go +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/model_objective_cluster_test.go +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/model_objective_earliness.go +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/model_objective_earliness_test.go +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/model_objective_expression.go +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/model_objective_expression_test.go +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/model_objective_min_stops.go +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/model_objective_term.go +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/model_objective_travelduration.go +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/model_objective_travelduration_test.go +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/model_objective_unplanned.go +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/model_objective_vehicles.go +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/model_objective_vehicles_duration.go +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/model_plan_stops_unit.go +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/model_plan_stops_unit_test.go +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/model_plan_unit.go +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/model_plan_units_unit.go +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/model_plan_units_unit_test.go +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/model_statistics.go +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/model_stop.go +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/model_stop_test.go +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/model_stops_distance_queries.go +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/model_stops_distance_queries_test.go +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/model_test.go +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/model_vehicle.go +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/model_vehicle_test.go +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/model_vehicle_type.go +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/nextroute/__init__.py +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/nextroute/base_model.py +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/nextroute/check/__init__.py +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/nextroute/check/options.py +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/nextroute/check/schema.py +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/nextroute/factory/__init__.py +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/nextroute/factory/options.py +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/nextroute/options.py +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/nextroute/schema/__init__.py +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/nextroute/schema/input.py +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/nextroute/schema/location.py +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/nextroute/schema/output.py +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/nextroute/schema/statistics.py +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/nextroute/schema/stop.py +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/nextroute/schema/vehicle.py +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/nextroute.code-workspace +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/observers/doc.go +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/observers/performance_observer.go +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/observers/solve_observer.go +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/observers/solve_performance_observer.go +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/pyproject.toml +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/schema/custom_data.go +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/schema/custom_data_test.go +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/schema/input.go +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/schema/output.go +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/solution.go +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/solution_construcation_sweep_test.go +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/solution_construction_random.go +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/solution_construction_sweep.go +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/solution_format.go +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/solution_initial_observer.go +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/solution_initial_stops_test.go +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/solution_move.go +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/solution_move_stops.go +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/solution_move_stops_generator.go +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/solution_move_stops_generator_test.go +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/solution_move_stops_test.go +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/solution_move_test.go +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/solution_move_units.go +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/solution_observer.go +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/solution_plan_stops_unit.go +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/solution_plan_unit.go +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/solution_plan_unit_collection.go +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/solution_plan_unit_collection_test.go +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/solution_plan_units_unit.go +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/solution_position_hint.go +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/solution_sequence_generator.go +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/solution_sequence_generator_test.go +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/solution_stop.go +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/solution_stop_generator.go +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/solution_stop_generator_test.go +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/solution_stop_position.go +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/solution_test.go +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/solution_unplan.go +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/solution_vehicle.go +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/solution_vehicle_test.go +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/solve_events.go +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/solve_information.go +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/solve_operator.go +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/solve_operator_and.go +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/solve_operator_or.go +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/solve_operator_plan.go +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/solve_operator_restart.go +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/solve_operator_unplan.go +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/solve_operator_unplan_clusters.go +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/solve_operator_unplan_location.go +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/solve_operator_unplan_vehicles.go +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/solve_parallel_events.go +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/solve_parameters.go +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/solve_progressioner.go +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/solve_solution_channel.go +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/solve_solver.go +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/solve_solver_parallel.go +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/solver.go +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/solver_parallel.go +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/tests/__init__.py +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/tests/check/input.json +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/tests/check/input.json.golden +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/tests/check/main.go +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/tests/check/main_test.go +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/tests/custom_constraint/input.json +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/tests/custom_constraint/input.json.golden +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/tests/custom_constraint/main.go +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/tests/custom_constraint/main_test.go +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/tests/custom_matrices/input.json +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/tests/custom_matrices/input.json.golden +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/tests/custom_matrices/main.go +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/tests/custom_matrices/main_test.go +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/tests/custom_objective/input.json +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/tests/custom_objective/input.json.golden +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/tests/custom_objective/main.go +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/tests/custom_objective/main_test.go +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/tests/custom_operators/input.json +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/tests/custom_operators/input.json.golden +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/tests/custom_operators/main.go +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/tests/custom_operators/main_test.go +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/tests/custom_output/input.json +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/tests/custom_output/input.json.golden +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/tests/custom_output/main.go +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/tests/custom_output/main_test.go +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/tests/golden/benchmark_test.go +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/tests/golden/main_test.go +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/tests/golden/testdata/activation_penalty.json +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/tests/golden/testdata/activation_penalty.json.golden +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/tests/golden/testdata/alternates.json +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/tests/golden/testdata/alternates.json.golden +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/tests/golden/testdata/basic.json +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/tests/golden/testdata/basic.json.golden +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/tests/golden/testdata/capacity.json +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/tests/golden/testdata/capacity.json.golden +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/tests/golden/testdata/compatibility_attributes.json +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/tests/golden/testdata/compatibility_attributes.json.golden +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/tests/golden/testdata/complex_precedence.json +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/tests/golden/testdata/complex_precedence.json.golden +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/tests/golden/testdata/custom_data.json +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/tests/golden/testdata/custom_data.json.golden +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/tests/golden/testdata/defaults.json +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/tests/golden/testdata/defaults.json.golden +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/tests/golden/testdata/direct_precedence.json +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/tests/golden/testdata/direct_precedence.json.golden +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/tests/golden/testdata/direct_precedence_linked.json +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/tests/golden/testdata/direct_precedence_linked.json.golden +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/tests/golden/testdata/distance_matrix.json +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/tests/golden/testdata/distance_matrix.json.golden +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/tests/golden/testdata/duration_groups.json +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/tests/golden/testdata/duration_groups.json.golden +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/tests/golden/testdata/duration_groups_with_stop_multiplier.json +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/tests/golden/testdata/duration_groups_with_stop_multiplier.json.golden +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/tests/golden/testdata/duration_matrix.json +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/tests/golden/testdata/duration_matrix.json.golden +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/tests/golden/testdata/early_arrival_penalty.json +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/tests/golden/testdata/early_arrival_penalty.json.golden +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/tests/golden/testdata/initial_stops.json +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/tests/golden/testdata/initial_stops.json.golden +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/tests/golden/testdata/initial_stops_infeasible_compatibility.json +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/tests/golden/testdata/initial_stops_infeasible_compatibility.json.golden +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/tests/golden/testdata/initial_stops_infeasible_compatibility.md +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/tests/golden/testdata/initial_stops_infeasible_max_duration.json +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/tests/golden/testdata/initial_stops_infeasible_max_duration.json.golden +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/tests/golden/testdata/initial_stops_infeasible_max_duration.md +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/tests/golden/testdata/initial_stops_infeasible_remove_all.json +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/tests/golden/testdata/initial_stops_infeasible_remove_all.json.golden +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/tests/golden/testdata/initial_stops_infeasible_remove_all.md +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/tests/golden/testdata/initial_stops_infeasible_temporal.json +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/tests/golden/testdata/initial_stops_infeasible_temporal.json.golden +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/tests/golden/testdata/initial_stops_infeasible_temporal.md +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/tests/golden/testdata/initial_stops_infeasible_tuple.json +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/tests/golden/testdata/initial_stops_infeasible_tuple.json.golden +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/tests/golden/testdata/initial_stops_infeasible_tuple.md +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/tests/golden/testdata/late_arrival_penalty.json +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/tests/golden/testdata/late_arrival_penalty.json.golden +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/tests/golden/testdata/max_distance.json +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/tests/golden/testdata/max_distance.json.golden +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/tests/golden/testdata/max_duration.json +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/tests/golden/testdata/max_duration.json.golden +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/tests/golden/testdata/max_stops.json +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/tests/golden/testdata/max_stops.json.golden +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/tests/golden/testdata/max_wait_stop.json +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/tests/golden/testdata/max_wait_stop.json.golden +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/tests/golden/testdata/max_wait_stop.md +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/tests/golden/testdata/max_wait_vehicle.json +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/tests/golden/testdata/max_wait_vehicle.json.golden +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/tests/golden/testdata/max_wait_vehicle.md +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/tests/golden/testdata/min_stops.json +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/tests/golden/testdata/min_stops.json.golden +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/tests/golden/testdata/multi_window.json +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/tests/golden/testdata/multi_window.json.golden +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/tests/golden/testdata/multi_window.md +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/tests/golden/testdata/no_mix.json +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/tests/golden/testdata/no_mix.json.golden +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/tests/golden/testdata/no_mix_null.json +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/tests/golden/testdata/no_mix_null.json.golden +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/tests/golden/testdata/no_mix_null.md +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/tests/golden/testdata/precedence.json +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/tests/golden/testdata/precedence.json.golden +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/tests/golden/testdata/precedence_pathologic.json +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/tests/golden/testdata/precedence_pathologic.json.golden +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/tests/golden/testdata/start_level.json +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/tests/golden/testdata/start_level.json.golden +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/tests/golden/testdata/start_level.md +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/tests/golden/testdata/start_time_window.json +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/tests/golden/testdata/start_time_window.json.golden +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/tests/golden/testdata/stop_duration.json +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/tests/golden/testdata/stop_duration.json.golden +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/tests/golden/testdata/stop_duration_multiplier.json +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/tests/golden/testdata/stop_duration_multiplier.json.golden +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/tests/golden/testdata/stop_groups.json +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/tests/golden/testdata/stop_groups.json.golden +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/tests/golden/testdata/template_input.json +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/tests/golden/testdata/template_input.json.golden +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/tests/golden/testdata/unplanned_penalty.json +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/tests/golden/testdata/unplanned_penalty.json.golden +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/tests/golden/testdata/vehicle_start_end_location.json +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/tests/golden/testdata/vehicle_start_end_location.json.golden +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/tests/golden/testdata/vehicle_start_end_time.json +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/tests/golden/testdata/vehicle_start_end_time.json.golden +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/tests/golden/testdata/vehicles_duration_objective.json +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/tests/golden/testdata/vehicles_duration_objective.json.golden +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/tests/inline_options/input.json +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/tests/inline_options/input.json.golden +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/tests/inline_options/main.go +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/tests/inline_options/main_test.go +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/tests/nextroute_python/__init__.py +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/tests/nextroute_python/schema/__init__.py +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/tests/nextroute_python/schema/input.json +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/tests/nextroute_python/schema/output.json +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/tests/nextroute_python/schema/output_with_check.json +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/tests/nextroute_python/schema/test_input.py +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/tests/nextroute_python/schema/test_output.py +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/tests/nextroute_python/test_options.py +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/tests/output_options/main.sh +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/tests/output_options/main.sh.golden +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/tests/output_options/main_test.go +0 -0
- {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/version.go +0 -0
|
@@ -2,11 +2,12 @@ name: python test
|
|
|
2
2
|
on: [push]
|
|
3
3
|
jobs:
|
|
4
4
|
python-test:
|
|
5
|
-
runs-on:
|
|
5
|
+
runs-on: ${{ matrix.platform }}
|
|
6
6
|
strategy:
|
|
7
7
|
fail-fast: false
|
|
8
8
|
matrix:
|
|
9
|
-
python-version: [
|
|
9
|
+
python-version: ['3.8', '3.9', '3.10', '3.11', '3.12']
|
|
10
|
+
platform: [ubuntu-latest, windows-latest, macos-latest, macos-13]
|
|
10
11
|
steps:
|
|
11
12
|
- name: git clone
|
|
12
13
|
uses: actions/checkout@v4
|
|
@@ -13,8 +13,12 @@ on:
|
|
|
13
13
|
default: true
|
|
14
14
|
type: boolean
|
|
15
15
|
|
|
16
|
+
env:
|
|
17
|
+
GO_VERSION: 1.22.0
|
|
18
|
+
PYTHON_VERSION: 3.12
|
|
19
|
+
|
|
16
20
|
jobs:
|
|
17
|
-
|
|
21
|
+
build:
|
|
18
22
|
runs-on: ubuntu-latest
|
|
19
23
|
env:
|
|
20
24
|
VERSION: ${{ inputs.VERSION }}
|
|
@@ -48,12 +52,12 @@ jobs:
|
|
|
48
52
|
- name: set up Python
|
|
49
53
|
uses: actions/setup-python@v5
|
|
50
54
|
with:
|
|
51
|
-
python-version:
|
|
55
|
+
python-version: ${{ env.PYTHON_VERSION }}
|
|
52
56
|
|
|
53
|
-
- name:
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
+
- name: set up go
|
|
58
|
+
uses: actions/setup-go@v5
|
|
59
|
+
with:
|
|
60
|
+
go-version: ${{ env.GO_VERSION }}
|
|
57
61
|
|
|
58
62
|
- name: configure git with the bot credentials
|
|
59
63
|
run: |
|
|
@@ -77,6 +81,12 @@ jobs:
|
|
|
77
81
|
|
|
78
82
|
git rev-parse --short HEAD
|
|
79
83
|
|
|
84
|
+
- name: install dependencies
|
|
85
|
+
run: |
|
|
86
|
+
pip install --upgrade pip
|
|
87
|
+
pip install -r requirements.txt
|
|
88
|
+
working-directory: ./nextroute
|
|
89
|
+
|
|
80
90
|
- name: bump version in version file for Go
|
|
81
91
|
run: |
|
|
82
92
|
echo $VERSION > VERSION
|
|
@@ -86,6 +96,16 @@ jobs:
|
|
|
86
96
|
run: hatch version ${{ env.VERSION }}
|
|
87
97
|
working-directory: ./nextroute
|
|
88
98
|
|
|
99
|
+
- name: compile Nextroute Go binaries
|
|
100
|
+
run: |
|
|
101
|
+
bash .nextmv/compile_binaries.sh
|
|
102
|
+
working-directory: ./nextroute
|
|
103
|
+
|
|
104
|
+
- name: upload Go binaries
|
|
105
|
+
uses: actions/upload-artifact@v4
|
|
106
|
+
with:
|
|
107
|
+
path: ./nextroute/nextroute/bin/*
|
|
108
|
+
|
|
89
109
|
- name: commit version bump
|
|
90
110
|
run: |
|
|
91
111
|
git add VERSION
|
|
@@ -115,9 +135,9 @@ jobs:
|
|
|
115
135
|
run: python -m build
|
|
116
136
|
working-directory: ./nextroute
|
|
117
137
|
|
|
118
|
-
release:
|
|
138
|
+
release:
|
|
119
139
|
runs-on: ubuntu-latest
|
|
120
|
-
needs:
|
|
140
|
+
needs: build
|
|
121
141
|
strategy:
|
|
122
142
|
matrix:
|
|
123
143
|
include:
|
|
@@ -140,16 +160,22 @@ jobs:
|
|
|
140
160
|
- name: set up Python
|
|
141
161
|
uses: actions/setup-python@v5
|
|
142
162
|
with:
|
|
143
|
-
python-version:
|
|
163
|
+
python-version: ${{ env.PYTHON_VERSION }}
|
|
144
164
|
|
|
145
165
|
- name: install dependencies
|
|
146
166
|
run: |
|
|
147
167
|
pip install --upgrade pip
|
|
148
|
-
pip install
|
|
168
|
+
pip install -r requirements.txt
|
|
149
169
|
|
|
150
170
|
- name: build binary wheel and source tarball
|
|
151
171
|
run: python -m build
|
|
152
172
|
|
|
173
|
+
- name: download artifacts
|
|
174
|
+
uses: actions/download-artifact@v4
|
|
175
|
+
with:
|
|
176
|
+
path: nextroute/bin
|
|
177
|
+
merge-multiple: true
|
|
178
|
+
|
|
153
179
|
- name: Publish package distributions to PyPI
|
|
154
180
|
if: ${{ matrix.target-env == 'pypi' }}
|
|
155
181
|
uses: pypa/gh-action-pypi-publish@release/v1
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
|
|
3
|
+
# Ensure the script is executed from the root of the project
|
|
4
|
+
cd "$(dirname "$0")/.." || exit 1
|
|
5
|
+
|
|
6
|
+
CONFIG_FILE="workflow-configuration.yml"
|
|
7
|
+
|
|
8
|
+
# Extract the .build key and iterate over each object.
|
|
9
|
+
BUILDS=$(yq e '.build' $CONFIG_FILE)
|
|
10
|
+
for i in $(seq 0 $(($(echo "$BUILDS" | yq e 'length' -) - 1)))
|
|
11
|
+
do
|
|
12
|
+
# Extract GOOS and GOARCH values
|
|
13
|
+
BUILD_GOOS=$(echo "$BUILDS" | yq e ".[$i].GOOS" -)
|
|
14
|
+
BUILD_GOARCH=$(echo "$BUILDS" | yq e ".[$i].GOARCH" -)
|
|
15
|
+
|
|
16
|
+
# Step 5: Construct and run the build command
|
|
17
|
+
echo "🐰 Compiling Nextroute binary for OS: $BUILD_GOOS; ARCH: $BUILD_GOARCH"
|
|
18
|
+
if [ "$BUILD_GOOS" = "windows" ]; then
|
|
19
|
+
OUTPUT_SUFFIX=".exe"
|
|
20
|
+
else
|
|
21
|
+
OUTPUT_SUFFIX=""
|
|
22
|
+
fi
|
|
23
|
+
GOOS=$BUILD_GOOS \
|
|
24
|
+
GOARCH=$BUILD_GOARCH \
|
|
25
|
+
go build -o nextroute/bin/nextroute-${BUILD_GOOS}-${BUILD_GOARCH}${OUTPUT_SUFFIX} \
|
|
26
|
+
cmd/main.go
|
|
27
|
+
done
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.3
|
|
2
2
|
Name: nextroute
|
|
3
|
-
Version: 1.8.0.
|
|
3
|
+
Version: 1.8.0.dev15
|
|
4
4
|
Summary: Nextroute is an engine for solving Vehicle Routing Problems (VRPs).
|
|
5
5
|
Project-URL: Homepage, https://www.nextmv.io
|
|
6
6
|
Project-URL: Documentation, https://www.nextmv.io/docs/vehicle-routing
|
|
@@ -194,7 +194,14 @@ file.
|
|
|
194
194
|
|
|
195
195
|
## Usage
|
|
196
196
|
|
|
197
|
-
|
|
197
|
+
For further information on how to get started, features, deployment, etc.,
|
|
198
|
+
please refer to the [official
|
|
199
|
+
documentation](https://www.nextmv.io/docs/vehicle-routing).
|
|
200
|
+
|
|
201
|
+
### Go
|
|
202
|
+
|
|
203
|
+
A first run can be done with the following command. Stand at the root of the
|
|
204
|
+
repository and run:
|
|
198
205
|
|
|
199
206
|
```bash
|
|
200
207
|
go run cmd/main.go -runner.input.path cmd/input.json -solve.duration 5s
|
|
@@ -203,7 +210,7 @@ go run cmd/main.go -runner.input.path cmd/input.json -solve.duration 5s
|
|
|
203
210
|
This will run the solver for 5 seconds and output the result to the console.
|
|
204
211
|
|
|
205
212
|
In order to start a _new project_, please refer to the sample app in the
|
|
206
|
-
[community-apps repository](https://github.com/nextmv-io/community-apps/tree/develop/nextroute).
|
|
213
|
+
[community-apps repository](https://github.com/nextmv-io/community-apps/tree/develop/go-nextroute).
|
|
207
214
|
If you have [Nextmv CLI](https://www.nextmv.io/docs/platform/installation#nextmv-cli)
|
|
208
215
|
installed, you can create a new project with the following command:
|
|
209
216
|
|
|
@@ -211,8 +218,40 @@ installed, you can create a new project with the following command:
|
|
|
211
218
|
nextmv community clone -a go-nextroute
|
|
212
219
|
```
|
|
213
220
|
|
|
214
|
-
|
|
215
|
-
|
|
221
|
+
### Python
|
|
222
|
+
|
|
223
|
+
A first run can be done by executing the following script. Stand at the root of
|
|
224
|
+
the repository and execute it:
|
|
225
|
+
|
|
226
|
+
```python
|
|
227
|
+
import json
|
|
228
|
+
|
|
229
|
+
import nextroute
|
|
230
|
+
|
|
231
|
+
with open("cmd/input.json") as f:
|
|
232
|
+
data = json.load(f)
|
|
233
|
+
|
|
234
|
+
input = nextroute.schema.Input.from_dict(data)
|
|
235
|
+
options = nextroute.Options(
|
|
236
|
+
solve=nextroute.ParallelSolveOptions(
|
|
237
|
+
duration=5,
|
|
238
|
+
),
|
|
239
|
+
)
|
|
240
|
+
|
|
241
|
+
output = nextroute.solve(input, options)
|
|
242
|
+
print(json.dumps(output.to_dict(), indent=2))
|
|
243
|
+
```
|
|
244
|
+
|
|
245
|
+
This will run the solver for 5 seconds and output the result to the console.
|
|
246
|
+
|
|
247
|
+
In order to start a _new project_, please refer to the sample app in the
|
|
248
|
+
[community-apps repository](https://github.com/nextmv-io/community-apps/tree/develop/python-nextroute).
|
|
249
|
+
If you have [Nextmv CLI](https://www.nextmv.io/docs/platform/installation#nextmv-cli)
|
|
250
|
+
installed, you can create a new project with the following command:
|
|
251
|
+
|
|
252
|
+
```bash
|
|
253
|
+
nextmv community clone -a python-nextroute
|
|
254
|
+
```
|
|
216
255
|
|
|
217
256
|
## Local benchmarking
|
|
218
257
|
|
|
@@ -84,7 +84,14 @@ file.
|
|
|
84
84
|
|
|
85
85
|
## Usage
|
|
86
86
|
|
|
87
|
-
|
|
87
|
+
For further information on how to get started, features, deployment, etc.,
|
|
88
|
+
please refer to the [official
|
|
89
|
+
documentation](https://www.nextmv.io/docs/vehicle-routing).
|
|
90
|
+
|
|
91
|
+
### Go
|
|
92
|
+
|
|
93
|
+
A first run can be done with the following command. Stand at the root of the
|
|
94
|
+
repository and run:
|
|
88
95
|
|
|
89
96
|
```bash
|
|
90
97
|
go run cmd/main.go -runner.input.path cmd/input.json -solve.duration 5s
|
|
@@ -93,7 +100,7 @@ go run cmd/main.go -runner.input.path cmd/input.json -solve.duration 5s
|
|
|
93
100
|
This will run the solver for 5 seconds and output the result to the console.
|
|
94
101
|
|
|
95
102
|
In order to start a _new project_, please refer to the sample app in the
|
|
96
|
-
[community-apps repository](https://github.com/nextmv-io/community-apps/tree/develop/nextroute).
|
|
103
|
+
[community-apps repository](https://github.com/nextmv-io/community-apps/tree/develop/go-nextroute).
|
|
97
104
|
If you have [Nextmv CLI](https://www.nextmv.io/docs/platform/installation#nextmv-cli)
|
|
98
105
|
installed, you can create a new project with the following command:
|
|
99
106
|
|
|
@@ -101,8 +108,40 @@ installed, you can create a new project with the following command:
|
|
|
101
108
|
nextmv community clone -a go-nextroute
|
|
102
109
|
```
|
|
103
110
|
|
|
104
|
-
|
|
105
|
-
|
|
111
|
+
### Python
|
|
112
|
+
|
|
113
|
+
A first run can be done by executing the following script. Stand at the root of
|
|
114
|
+
the repository and execute it:
|
|
115
|
+
|
|
116
|
+
```python
|
|
117
|
+
import json
|
|
118
|
+
|
|
119
|
+
import nextroute
|
|
120
|
+
|
|
121
|
+
with open("cmd/input.json") as f:
|
|
122
|
+
data = json.load(f)
|
|
123
|
+
|
|
124
|
+
input = nextroute.schema.Input.from_dict(data)
|
|
125
|
+
options = nextroute.Options(
|
|
126
|
+
solve=nextroute.ParallelSolveOptions(
|
|
127
|
+
duration=5,
|
|
128
|
+
),
|
|
129
|
+
)
|
|
130
|
+
|
|
131
|
+
output = nextroute.solve(input, options)
|
|
132
|
+
print(json.dumps(output.to_dict(), indent=2))
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
This will run the solver for 5 seconds and output the result to the console.
|
|
136
|
+
|
|
137
|
+
In order to start a _new project_, please refer to the sample app in the
|
|
138
|
+
[community-apps repository](https://github.com/nextmv-io/community-apps/tree/develop/python-nextroute).
|
|
139
|
+
If you have [Nextmv CLI](https://www.nextmv.io/docs/platform/installation#nextmv-cli)
|
|
140
|
+
installed, you can create a new project with the following command:
|
|
141
|
+
|
|
142
|
+
```bash
|
|
143
|
+
nextmv community clone -a python-nextroute
|
|
144
|
+
```
|
|
106
145
|
|
|
107
146
|
## Local benchmarking
|
|
108
147
|
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
v1.8.0-dev.15
|
|
@@ -35,7 +35,8 @@ def solve(
|
|
|
35
35
|
and options can be provided as dictionaries or as objects, although the
|
|
36
36
|
recommended way is to use the classes, as they provide validation.
|
|
37
37
|
|
|
38
|
-
|
|
38
|
+
Examples
|
|
39
|
+
--------
|
|
39
40
|
|
|
40
41
|
* Using default options to load an input from a file.
|
|
41
42
|
```python
|
|
@@ -124,6 +125,9 @@ def solve(
|
|
|
124
125
|
)
|
|
125
126
|
|
|
126
127
|
binary_name = f"nextroute-{os_name}-{_ARCHITECTURE_TRANSLATION[architecture]}"
|
|
128
|
+
if os_name == "windows":
|
|
129
|
+
binary_name += ".exe"
|
|
130
|
+
|
|
127
131
|
executable = os.path.join(os.path.dirname(__file__), "bin", binary_name)
|
|
128
132
|
if not os.path.exists(executable):
|
|
129
133
|
raise Exception(f"missing Nextroute binary: {executable}")
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
# This file is used to configure the workflow for the GitHub Actions.
|
|
2
|
+
|
|
3
|
+
# Binaries that need to be built for the different platforms. The image is the
|
|
4
|
+
# name of the runner to use. The platform is the platform to build the wheel
|
|
5
|
+
# for. The GOOS is the operating system to build the wheel for. The GOARCH is
|
|
6
|
+
# the architecture to build the wheel for.
|
|
7
|
+
build:
|
|
8
|
+
- name: linux-amd64
|
|
9
|
+
GOOS: linux
|
|
10
|
+
GOARCH: amd64
|
|
11
|
+
- name: linux-arm64
|
|
12
|
+
GOOS: linux
|
|
13
|
+
GOARCH: arm64
|
|
14
|
+
- name: darwin-amd64
|
|
15
|
+
GOOS: darwin
|
|
16
|
+
GOARCH: amd64
|
|
17
|
+
- name: darwin-arm64
|
|
18
|
+
GOOS: darwin
|
|
19
|
+
GOARCH: arm64
|
|
20
|
+
- name: windows-amd64
|
|
21
|
+
GOOS: windows
|
|
22
|
+
GOARCH: amd64
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
tabWidth: 2
|
nextroute-1.8.0.dev2/VERSION
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
v1.8.0-dev.2
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|