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.
Files changed (386) hide show
  1. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/.github/workflows/python-test.yml +3 -2
  2. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/.github/workflows/release.yml +36 -10
  3. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/.gitignore +3 -0
  4. nextroute-1.8.0.dev15/.nextmv/compile_binaries.sh +27 -0
  5. nextroute-1.8.0.dev15/.prettierrc +15 -0
  6. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/PKG-INFO +44 -5
  7. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/README.md +43 -4
  8. nextroute-1.8.0.dev15/VERSION +1 -0
  9. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/nextroute/__about__.py +1 -1
  10. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/nextroute/solve.py +5 -1
  11. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/requirements.txt +1 -0
  12. nextroute-1.8.0.dev15/workflow-configuration.yml +22 -0
  13. nextroute-1.8.0.dev2/.prettierrc.yml +0 -1
  14. nextroute-1.8.0.dev2/VERSION +0 -1
  15. nextroute-1.8.0.dev2/nextroute/bin/nextroute-darwin-amd64 +0 -0
  16. nextroute-1.8.0.dev2/nextroute/bin/nextroute-darwin-arm64 +0 -0
  17. nextroute-1.8.0.dev2/nextroute/bin/nextroute-linux-amd64 +0 -0
  18. nextroute-1.8.0.dev2/nextroute/bin/nextroute-linux-arm64 +0 -0
  19. nextroute-1.8.0.dev2/nextroute/bin/nextroute-windows-amd64 +0 -0
  20. nextroute-1.8.0.dev2/nextroute/bin/nextroute-windows-arm64 +0 -0
  21. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/.github/workflows/go-test-lint.yml +0 -0
  22. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/.github/workflows/header.yml +0 -0
  23. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/.github/workflows/json-lint.yml +0 -0
  24. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/.github/workflows/markdown-lint.yml +0 -0
  25. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/.github/workflows/python-lint.yml +0 -0
  26. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/.golangci.yml +0 -0
  27. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/.nextmv/add_header.py +0 -0
  28. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/.nextmv/check_header.py +0 -0
  29. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/LICENSE +0 -0
  30. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/check/check.go +0 -0
  31. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/check/doc.go +0 -0
  32. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/check/format.go +0 -0
  33. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/check/observer.go +0 -0
  34. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/check/options.go +0 -0
  35. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/check/schema/schema.go +0 -0
  36. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/check/schema.go +0 -0
  37. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/cmd/.gitignore +0 -0
  38. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/cmd/input.json +0 -0
  39. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/cmd/main.go +0 -0
  40. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/common/alias.go +0 -0
  41. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/common/alias_test.go +0 -0
  42. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/common/boundingbox.go +0 -0
  43. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/common/boundingbox_test.go +0 -0
  44. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/common/distance.go +0 -0
  45. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/common/duration.go +0 -0
  46. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/common/errors/errors.go +0 -0
  47. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/common/fast_haversine.go +0 -0
  48. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/common/haversine.go +0 -0
  49. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/common/intersect.go +0 -0
  50. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/common/location.go +0 -0
  51. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/common/location_test.go +0 -0
  52. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/common/nsmallest.go +0 -0
  53. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/common/nsmallest_test.go +0 -0
  54. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/common/rangecheck.go +0 -0
  55. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/common/rangecheck_test.go +0 -0
  56. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/common/slices.go +0 -0
  57. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/common/speed.go +0 -0
  58. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/common/statistics.go +0 -0
  59. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/common/statistics_test.go +0 -0
  60. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/common/utils.go +0 -0
  61. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/common/utils_test.go +0 -0
  62. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/doc.go +0 -0
  63. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/factory/alternates.go +0 -0
  64. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/factory/constraint_attributes.go +0 -0
  65. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/factory/constraint_capacity.go +0 -0
  66. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/factory/constraint_capacity_test.go +0 -0
  67. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/factory/constraint_cluster.go +0 -0
  68. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/factory/constraint_distance_limit.go +0 -0
  69. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/factory/constraint_max_duration.go +0 -0
  70. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/factory/constraint_max_stops.go +0 -0
  71. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/factory/constraint_max_wait_stop.go +0 -0
  72. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/factory/constraint_max_wait_vehicle.go +0 -0
  73. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/factory/constraint_no_mix.go +0 -0
  74. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/factory/constraint_shift.go +0 -0
  75. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/factory/constraint_start_timewindows.go +0 -0
  76. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/factory/construction.go +0 -0
  77. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/factory/data.go +0 -0
  78. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/factory/defaults.go +0 -0
  79. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/factory/defaults_test.go +0 -0
  80. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/factory/doc.go +0 -0
  81. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/factory/duration_groups_expression.go +0 -0
  82. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/factory/factory.go +0 -0
  83. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/factory/format.go +0 -0
  84. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/factory/group.go +0 -0
  85. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/factory/initialsolution.go +0 -0
  86. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/factory/model.go +0 -0
  87. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/factory/objective_activation.go +0 -0
  88. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/factory/objective_capacity.go +0 -0
  89. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/factory/objective_cluster.go +0 -0
  90. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/factory/objective_earliness_lateness.go +0 -0
  91. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/factory/objective_min_stops.go +0 -0
  92. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/factory/objective_travel_duration.go +0 -0
  93. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/factory/objective_unplanned.go +0 -0
  94. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/factory/objective_vehicles_duration.go +0 -0
  95. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/factory/plan_units.go +0 -0
  96. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/factory/precedence.go +0 -0
  97. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/factory/services.go +0 -0
  98. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/factory/stops.go +0 -0
  99. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/factory/validate.go +0 -0
  100. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/factory/vehicles.go +0 -0
  101. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/go.mod +0 -0
  102. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/go.sum +0 -0
  103. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/model.go +0 -0
  104. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/model_checkedat.go +0 -0
  105. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/model_cluster.go +0 -0
  106. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/model_complexity.go +0 -0
  107. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/model_constraint.go +0 -0
  108. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/model_constraint_attributes.go +0 -0
  109. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/model_constraint_attributes_test.go +0 -0
  110. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/model_constraint_cluster_test.go +0 -0
  111. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/model_constraint_maximum_duration.go +0 -0
  112. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/model_constraint_maximum_duration_test.go +0 -0
  113. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/model_constraint_maximum_stops.go +0 -0
  114. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/model_constraint_maximum_stops_test.go +0 -0
  115. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/model_constraint_maximum_test.go +0 -0
  116. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/model_constraint_maximum_travel_duration.go +0 -0
  117. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/model_constraint_maximum_wait_stop.go +0 -0
  118. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/model_constraint_maximum_wait_stop_test.go +0 -0
  119. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/model_constraint_maximum_wait_vehicle.go +0 -0
  120. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/model_constraint_maximum_wait_vehicle_test.go +0 -0
  121. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/model_constraint_no_mix.go +0 -0
  122. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/model_constraint_no_mix_test.go +0 -0
  123. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/model_constraint_successor_test.go +0 -0
  124. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/model_constraint_successors.go +0 -0
  125. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/model_data.go +0 -0
  126. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/model_directed_acyclic_graph.go +0 -0
  127. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/model_directed_acyclic_graph_test.go +0 -0
  128. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/model_expression.go +0 -0
  129. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/model_expression_binary.go +0 -0
  130. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/model_expression_composed.go +0 -0
  131. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/model_expression_custom.go +0 -0
  132. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/model_expression_duration.go +0 -0
  133. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/model_expression_haversine.go +0 -0
  134. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/model_expression_measure_byindex.go +0 -0
  135. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/model_expression_measure_bypoint.go +0 -0
  136. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/model_expression_sum.go +0 -0
  137. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/model_expression_time.go +0 -0
  138. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/model_expression_time_dependent.go +0 -0
  139. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/model_expression_time_dependent_test.go +0 -0
  140. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/model_expression_unary.go +0 -0
  141. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/model_haversine.go +0 -0
  142. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/model_identifier.go +0 -0
  143. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/model_latest.go +0 -0
  144. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/model_latest_test.go +0 -0
  145. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/model_maximum.go +0 -0
  146. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/model_objective.go +0 -0
  147. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/model_objective_cluster_test.go +0 -0
  148. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/model_objective_earliness.go +0 -0
  149. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/model_objective_earliness_test.go +0 -0
  150. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/model_objective_expression.go +0 -0
  151. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/model_objective_expression_test.go +0 -0
  152. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/model_objective_min_stops.go +0 -0
  153. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/model_objective_term.go +0 -0
  154. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/model_objective_travelduration.go +0 -0
  155. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/model_objective_travelduration_test.go +0 -0
  156. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/model_objective_unplanned.go +0 -0
  157. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/model_objective_vehicles.go +0 -0
  158. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/model_objective_vehicles_duration.go +0 -0
  159. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/model_plan_stops_unit.go +0 -0
  160. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/model_plan_stops_unit_test.go +0 -0
  161. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/model_plan_unit.go +0 -0
  162. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/model_plan_units_unit.go +0 -0
  163. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/model_plan_units_unit_test.go +0 -0
  164. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/model_statistics.go +0 -0
  165. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/model_stop.go +0 -0
  166. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/model_stop_test.go +0 -0
  167. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/model_stops_distance_queries.go +0 -0
  168. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/model_stops_distance_queries_test.go +0 -0
  169. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/model_test.go +0 -0
  170. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/model_vehicle.go +0 -0
  171. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/model_vehicle_test.go +0 -0
  172. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/model_vehicle_type.go +0 -0
  173. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/nextroute/__init__.py +0 -0
  174. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/nextroute/base_model.py +0 -0
  175. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/nextroute/check/__init__.py +0 -0
  176. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/nextroute/check/options.py +0 -0
  177. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/nextroute/check/schema.py +0 -0
  178. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/nextroute/factory/__init__.py +0 -0
  179. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/nextroute/factory/options.py +0 -0
  180. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/nextroute/options.py +0 -0
  181. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/nextroute/schema/__init__.py +0 -0
  182. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/nextroute/schema/input.py +0 -0
  183. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/nextroute/schema/location.py +0 -0
  184. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/nextroute/schema/output.py +0 -0
  185. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/nextroute/schema/statistics.py +0 -0
  186. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/nextroute/schema/stop.py +0 -0
  187. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/nextroute/schema/vehicle.py +0 -0
  188. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/nextroute.code-workspace +0 -0
  189. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/observers/doc.go +0 -0
  190. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/observers/performance_observer.go +0 -0
  191. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/observers/solve_observer.go +0 -0
  192. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/observers/solve_performance_observer.go +0 -0
  193. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/pyproject.toml +0 -0
  194. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/schema/custom_data.go +0 -0
  195. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/schema/custom_data_test.go +0 -0
  196. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/schema/input.go +0 -0
  197. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/schema/output.go +0 -0
  198. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/solution.go +0 -0
  199. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/solution_construcation_sweep_test.go +0 -0
  200. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/solution_construction_random.go +0 -0
  201. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/solution_construction_sweep.go +0 -0
  202. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/solution_format.go +0 -0
  203. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/solution_initial_observer.go +0 -0
  204. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/solution_initial_stops_test.go +0 -0
  205. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/solution_move.go +0 -0
  206. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/solution_move_stops.go +0 -0
  207. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/solution_move_stops_generator.go +0 -0
  208. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/solution_move_stops_generator_test.go +0 -0
  209. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/solution_move_stops_test.go +0 -0
  210. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/solution_move_test.go +0 -0
  211. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/solution_move_units.go +0 -0
  212. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/solution_observer.go +0 -0
  213. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/solution_plan_stops_unit.go +0 -0
  214. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/solution_plan_unit.go +0 -0
  215. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/solution_plan_unit_collection.go +0 -0
  216. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/solution_plan_unit_collection_test.go +0 -0
  217. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/solution_plan_units_unit.go +0 -0
  218. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/solution_position_hint.go +0 -0
  219. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/solution_sequence_generator.go +0 -0
  220. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/solution_sequence_generator_test.go +0 -0
  221. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/solution_stop.go +0 -0
  222. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/solution_stop_generator.go +0 -0
  223. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/solution_stop_generator_test.go +0 -0
  224. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/solution_stop_position.go +0 -0
  225. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/solution_test.go +0 -0
  226. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/solution_unplan.go +0 -0
  227. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/solution_vehicle.go +0 -0
  228. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/solution_vehicle_test.go +0 -0
  229. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/solve_events.go +0 -0
  230. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/solve_information.go +0 -0
  231. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/solve_operator.go +0 -0
  232. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/solve_operator_and.go +0 -0
  233. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/solve_operator_or.go +0 -0
  234. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/solve_operator_plan.go +0 -0
  235. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/solve_operator_restart.go +0 -0
  236. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/solve_operator_unplan.go +0 -0
  237. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/solve_operator_unplan_clusters.go +0 -0
  238. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/solve_operator_unplan_location.go +0 -0
  239. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/solve_operator_unplan_vehicles.go +0 -0
  240. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/solve_parallel_events.go +0 -0
  241. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/solve_parameters.go +0 -0
  242. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/solve_progressioner.go +0 -0
  243. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/solve_solution_channel.go +0 -0
  244. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/solve_solver.go +0 -0
  245. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/solve_solver_parallel.go +0 -0
  246. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/solver.go +0 -0
  247. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/solver_parallel.go +0 -0
  248. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/tests/__init__.py +0 -0
  249. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/tests/check/input.json +0 -0
  250. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/tests/check/input.json.golden +0 -0
  251. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/tests/check/main.go +0 -0
  252. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/tests/check/main_test.go +0 -0
  253. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/tests/custom_constraint/input.json +0 -0
  254. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/tests/custom_constraint/input.json.golden +0 -0
  255. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/tests/custom_constraint/main.go +0 -0
  256. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/tests/custom_constraint/main_test.go +0 -0
  257. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/tests/custom_matrices/input.json +0 -0
  258. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/tests/custom_matrices/input.json.golden +0 -0
  259. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/tests/custom_matrices/main.go +0 -0
  260. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/tests/custom_matrices/main_test.go +0 -0
  261. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/tests/custom_objective/input.json +0 -0
  262. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/tests/custom_objective/input.json.golden +0 -0
  263. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/tests/custom_objective/main.go +0 -0
  264. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/tests/custom_objective/main_test.go +0 -0
  265. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/tests/custom_operators/input.json +0 -0
  266. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/tests/custom_operators/input.json.golden +0 -0
  267. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/tests/custom_operators/main.go +0 -0
  268. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/tests/custom_operators/main_test.go +0 -0
  269. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/tests/custom_output/input.json +0 -0
  270. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/tests/custom_output/input.json.golden +0 -0
  271. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/tests/custom_output/main.go +0 -0
  272. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/tests/custom_output/main_test.go +0 -0
  273. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/tests/golden/benchmark_test.go +0 -0
  274. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/tests/golden/main_test.go +0 -0
  275. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/tests/golden/testdata/activation_penalty.json +0 -0
  276. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/tests/golden/testdata/activation_penalty.json.golden +0 -0
  277. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/tests/golden/testdata/alternates.json +0 -0
  278. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/tests/golden/testdata/alternates.json.golden +0 -0
  279. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/tests/golden/testdata/basic.json +0 -0
  280. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/tests/golden/testdata/basic.json.golden +0 -0
  281. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/tests/golden/testdata/capacity.json +0 -0
  282. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/tests/golden/testdata/capacity.json.golden +0 -0
  283. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/tests/golden/testdata/compatibility_attributes.json +0 -0
  284. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/tests/golden/testdata/compatibility_attributes.json.golden +0 -0
  285. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/tests/golden/testdata/complex_precedence.json +0 -0
  286. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/tests/golden/testdata/complex_precedence.json.golden +0 -0
  287. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/tests/golden/testdata/custom_data.json +0 -0
  288. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/tests/golden/testdata/custom_data.json.golden +0 -0
  289. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/tests/golden/testdata/defaults.json +0 -0
  290. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/tests/golden/testdata/defaults.json.golden +0 -0
  291. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/tests/golden/testdata/direct_precedence.json +0 -0
  292. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/tests/golden/testdata/direct_precedence.json.golden +0 -0
  293. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/tests/golden/testdata/direct_precedence_linked.json +0 -0
  294. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/tests/golden/testdata/direct_precedence_linked.json.golden +0 -0
  295. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/tests/golden/testdata/distance_matrix.json +0 -0
  296. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/tests/golden/testdata/distance_matrix.json.golden +0 -0
  297. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/tests/golden/testdata/duration_groups.json +0 -0
  298. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/tests/golden/testdata/duration_groups.json.golden +0 -0
  299. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/tests/golden/testdata/duration_groups_with_stop_multiplier.json +0 -0
  300. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/tests/golden/testdata/duration_groups_with_stop_multiplier.json.golden +0 -0
  301. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/tests/golden/testdata/duration_matrix.json +0 -0
  302. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/tests/golden/testdata/duration_matrix.json.golden +0 -0
  303. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/tests/golden/testdata/early_arrival_penalty.json +0 -0
  304. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/tests/golden/testdata/early_arrival_penalty.json.golden +0 -0
  305. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/tests/golden/testdata/initial_stops.json +0 -0
  306. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/tests/golden/testdata/initial_stops.json.golden +0 -0
  307. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/tests/golden/testdata/initial_stops_infeasible_compatibility.json +0 -0
  308. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/tests/golden/testdata/initial_stops_infeasible_compatibility.json.golden +0 -0
  309. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/tests/golden/testdata/initial_stops_infeasible_compatibility.md +0 -0
  310. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/tests/golden/testdata/initial_stops_infeasible_max_duration.json +0 -0
  311. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/tests/golden/testdata/initial_stops_infeasible_max_duration.json.golden +0 -0
  312. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/tests/golden/testdata/initial_stops_infeasible_max_duration.md +0 -0
  313. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/tests/golden/testdata/initial_stops_infeasible_remove_all.json +0 -0
  314. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/tests/golden/testdata/initial_stops_infeasible_remove_all.json.golden +0 -0
  315. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/tests/golden/testdata/initial_stops_infeasible_remove_all.md +0 -0
  316. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/tests/golden/testdata/initial_stops_infeasible_temporal.json +0 -0
  317. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/tests/golden/testdata/initial_stops_infeasible_temporal.json.golden +0 -0
  318. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/tests/golden/testdata/initial_stops_infeasible_temporal.md +0 -0
  319. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/tests/golden/testdata/initial_stops_infeasible_tuple.json +0 -0
  320. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/tests/golden/testdata/initial_stops_infeasible_tuple.json.golden +0 -0
  321. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/tests/golden/testdata/initial_stops_infeasible_tuple.md +0 -0
  322. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/tests/golden/testdata/late_arrival_penalty.json +0 -0
  323. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/tests/golden/testdata/late_arrival_penalty.json.golden +0 -0
  324. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/tests/golden/testdata/max_distance.json +0 -0
  325. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/tests/golden/testdata/max_distance.json.golden +0 -0
  326. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/tests/golden/testdata/max_duration.json +0 -0
  327. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/tests/golden/testdata/max_duration.json.golden +0 -0
  328. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/tests/golden/testdata/max_stops.json +0 -0
  329. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/tests/golden/testdata/max_stops.json.golden +0 -0
  330. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/tests/golden/testdata/max_wait_stop.json +0 -0
  331. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/tests/golden/testdata/max_wait_stop.json.golden +0 -0
  332. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/tests/golden/testdata/max_wait_stop.md +0 -0
  333. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/tests/golden/testdata/max_wait_vehicle.json +0 -0
  334. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/tests/golden/testdata/max_wait_vehicle.json.golden +0 -0
  335. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/tests/golden/testdata/max_wait_vehicle.md +0 -0
  336. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/tests/golden/testdata/min_stops.json +0 -0
  337. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/tests/golden/testdata/min_stops.json.golden +0 -0
  338. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/tests/golden/testdata/multi_window.json +0 -0
  339. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/tests/golden/testdata/multi_window.json.golden +0 -0
  340. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/tests/golden/testdata/multi_window.md +0 -0
  341. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/tests/golden/testdata/no_mix.json +0 -0
  342. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/tests/golden/testdata/no_mix.json.golden +0 -0
  343. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/tests/golden/testdata/no_mix_null.json +0 -0
  344. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/tests/golden/testdata/no_mix_null.json.golden +0 -0
  345. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/tests/golden/testdata/no_mix_null.md +0 -0
  346. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/tests/golden/testdata/precedence.json +0 -0
  347. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/tests/golden/testdata/precedence.json.golden +0 -0
  348. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/tests/golden/testdata/precedence_pathologic.json +0 -0
  349. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/tests/golden/testdata/precedence_pathologic.json.golden +0 -0
  350. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/tests/golden/testdata/start_level.json +0 -0
  351. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/tests/golden/testdata/start_level.json.golden +0 -0
  352. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/tests/golden/testdata/start_level.md +0 -0
  353. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/tests/golden/testdata/start_time_window.json +0 -0
  354. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/tests/golden/testdata/start_time_window.json.golden +0 -0
  355. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/tests/golden/testdata/stop_duration.json +0 -0
  356. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/tests/golden/testdata/stop_duration.json.golden +0 -0
  357. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/tests/golden/testdata/stop_duration_multiplier.json +0 -0
  358. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/tests/golden/testdata/stop_duration_multiplier.json.golden +0 -0
  359. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/tests/golden/testdata/stop_groups.json +0 -0
  360. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/tests/golden/testdata/stop_groups.json.golden +0 -0
  361. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/tests/golden/testdata/template_input.json +0 -0
  362. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/tests/golden/testdata/template_input.json.golden +0 -0
  363. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/tests/golden/testdata/unplanned_penalty.json +0 -0
  364. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/tests/golden/testdata/unplanned_penalty.json.golden +0 -0
  365. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/tests/golden/testdata/vehicle_start_end_location.json +0 -0
  366. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/tests/golden/testdata/vehicle_start_end_location.json.golden +0 -0
  367. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/tests/golden/testdata/vehicle_start_end_time.json +0 -0
  368. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/tests/golden/testdata/vehicle_start_end_time.json.golden +0 -0
  369. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/tests/golden/testdata/vehicles_duration_objective.json +0 -0
  370. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/tests/golden/testdata/vehicles_duration_objective.json.golden +0 -0
  371. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/tests/inline_options/input.json +0 -0
  372. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/tests/inline_options/input.json.golden +0 -0
  373. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/tests/inline_options/main.go +0 -0
  374. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/tests/inline_options/main_test.go +0 -0
  375. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/tests/nextroute_python/__init__.py +0 -0
  376. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/tests/nextroute_python/schema/__init__.py +0 -0
  377. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/tests/nextroute_python/schema/input.json +0 -0
  378. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/tests/nextroute_python/schema/output.json +0 -0
  379. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/tests/nextroute_python/schema/output_with_check.json +0 -0
  380. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/tests/nextroute_python/schema/test_input.py +0 -0
  381. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/tests/nextroute_python/schema/test_output.py +0 -0
  382. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/tests/nextroute_python/test_options.py +0 -0
  383. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/tests/output_options/main.sh +0 -0
  384. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/tests/output_options/main.sh.golden +0 -0
  385. {nextroute-1.8.0.dev2 → nextroute-1.8.0.dev15}/tests/output_options/main_test.go +0 -0
  386. {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: ubuntu-latest
5
+ runs-on: ${{ matrix.platform }}
6
6
  strategy:
7
7
  fail-fast: false
8
8
  matrix:
9
- python-version: ["3.8", "3.9", "3.10", "3.11", "3.12"]
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
- bump:
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: "3.12"
55
+ python-version: ${{ env.PYTHON_VERSION }}
52
56
 
53
- - name: install dependencies
54
- run: |
55
- pip install --upgrade pip
56
- pip install build hatch
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: # This job is used to publish the release to PyPI/TestPyPI
138
+ release:
119
139
  runs-on: ubuntu-latest
120
- needs: bump
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: "3.12"
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 build hatch
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
@@ -164,3 +164,6 @@ cython_debug/
164
164
 
165
165
  # VSCode
166
166
  .vscode/
167
+
168
+ # Nextroute binaries for Python
169
+ nextroute/bin/*
@@ -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
@@ -0,0 +1,15 @@
1
+ {
2
+ "semi": false,
3
+ "singleQuote": false,
4
+ "tabWidth": 2,
5
+ "useTabs": false,
6
+ "overrides": [
7
+ {
8
+ "files": "*.yml",
9
+ "options": {
10
+ "tabWidth": 2,
11
+ "singleQuote": false
12
+ }
13
+ }
14
+ ]
15
+ }
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: nextroute
3
- Version: 1.8.0.dev2
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
- A first run can be done with the following command:
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
- For further information on how to get started, features, deployment, etc.,
215
- please refer to the [official documentation](https://www.nextmv.io/docs/vehicle-routing).
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
- A first run can be done with the following command:
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
- For further information on how to get started, features, deployment, etc.,
105
- please refer to the [official documentation](https://www.nextmv.io/docs/vehicle-routing).
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
@@ -1,3 +1,3 @@
1
1
  # © 2019-present nextmv.io inc
2
2
 
3
- __version__ = "v1.8.0.dev2"
3
+ __version__ = "v1.8.0.dev15"
@@ -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
- Example:
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}")
@@ -2,3 +2,4 @@ build>=1.0.3
2
2
  pydantic>=2.5.2
3
3
  ruff>=0.1.7
4
4
  twine>=4.0.2
5
+ hatch>=1.13.0
@@ -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
@@ -1 +0,0 @@
1
- v1.8.0-dev.2
File without changes
File without changes
File without changes
File without changes
File without changes