| 230 | |
| 231 | |
| 232 | def build_parser(): |
| 233 | parser = argparse.ArgumentParser( |
| 234 | description=__doc__, formatter_class=argparse.RawDescriptionHelpFormatter |
| 235 | ) |
| 236 | subparsers = parser.add_subparsers() |
| 237 | |
| 238 | parser_run = subparsers.add_parser("run", help="run the benchmark") |
| 239 | parser_run.set_defaults(func=run) |
| 240 | parser_run.add_argument( |
| 241 | "--builds", |
| 242 | nargs="+", |
| 243 | metavar="PATH", |
| 244 | help="The directories containing the osrm toolchains (path/to/build)", |
| 245 | ) |
| 246 | parser_run.add_argument( |
| 247 | "--datasets", |
| 248 | nargs="+", |
| 249 | metavar="PATH", |
| 250 | help="Datasets to use or compare (path/to/dataset.osrm)", |
| 251 | ) |
| 252 | parser_run.add_argument( |
| 253 | "--coordinates", |
| 254 | required=True, |
| 255 | metavar="PATH", |
| 256 | help="A CSV-file of coordinates", |
| 257 | ) |
| 258 | parser_run.add_argument( |
| 259 | "--logfiles", |
| 260 | nargs="+", |
| 261 | metavar="PATH", |
| 262 | help="the test logs to write", |
| 263 | ) |
| 264 | parser_run.add_argument( |
| 265 | "--runs", |
| 266 | type=int, |
| 267 | help="How many times to run the comparison", |
| 268 | default=10, |
| 269 | metavar="NUM", |
| 270 | ) |
| 271 | parser_run.add_argument( |
| 272 | "--run-length", |
| 273 | help="How many requests to make in each run", |
| 274 | default=1000, |
| 275 | metavar="NUM", |
| 276 | ) |
| 277 | parser_run.add_argument( |
| 278 | "--host", |
| 279 | type=str, |
| 280 | # "localhost" has abysmal performance on Windows |
| 281 | default="http://127.0.0.1:5000", |
| 282 | metavar="URL:PORT", |
| 283 | help="Host URL (http://127.0.0.1:5000)", |
| 284 | ) |
| 285 | |
| 286 | parser_report = subparsers.add_parser("report", help="analyze logfiles") |
| 287 | parser_report.set_defaults(func=report) |
| 288 | parser_report.add_argument( |
| 289 | "--logfiles", |