ED_LRR/test_route.py

46 lines
1.3 KiB
Python

import sys
import logging
import coloredlogs
from datetime import timedelta
coloredlogs.DEFAULT_FIELD_STYLES["delta"] = {"color": "green"}
coloredlogs.DEFAULT_FIELD_STYLES["levelname"] = {"color": "yellow"}
class DeltaTimeFormatter(coloredlogs.ColoredFormatter):
def format(self, record):
seconds = record.relativeCreated / 1000
duration = timedelta(seconds=seconds)
record.delta = str(duration)
return super().format(record)
coloredlogs.ColoredFormatter = DeltaTimeFormatter
logfmt = " | ".join(
["[%(delta)s] %(levelname)s", "%(name)s:%(pathname)s:%(lineno)s", "%(message)s"]
)
loglevel = "info"
numeric_level = getattr(logging, loglevel.upper(), None)
if not isinstance(numeric_level, int):
raise ValueError("Invalid log level: %s" % loglevel)
coloredlogs.install(level=numeric_level, fmt=logfmt)
sys.path.append(".")
import _ed_lrr
ships = _ed_lrr.PyShip.from_journal()
r = _ed_lrr.PyRouter(print)
r.load("stars.csv")
ship = max(ships.values(), key=lambda s: s.max_range)
system_names = ["Sol", "Colonia"]
systems = r.resolve(*system_names)
sys_ids = {k: v["id"] for k, v in systems.items()}
route = r.route(
[sys_ids[system_names[0]], sys_ids[system_names[1]]],
7.84,
{"mode": "bfs","greedyness":0.0},
)
for n,s in enumerate(route,1):
print(n,s)