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)