Skip to content
Snippets Groups Projects
T.py 625 B
Newer Older
markn92's avatar
markn92 committed
import networkx as nx
markn92's avatar
markn92 committed
from dataclasses import dataclass
markn92's avatar
markn92 committed
from typing import Tuple, Union, NewType, Dict, Any, List, Callable
markn92's avatar
markn92 committed

markn92's avatar
markn92 committed
Node = int
Edge = Tuple[Node, Node]

markn92's avatar
markn92 committed
NodeData = Dict[str, Any]
EdgeData = Dict[str, Any]

markn92's avatar
markn92 committed
Wh = NewType('Wh', Union[float, int])
markn92's avatar
markn92 committed
SoC = NewType('SoC', Wh)
markn92's avatar
markn92 committed
ChargingCoefficient = Union[float, int, None]
markn92's avatar
markn92 committed

Time = Union[float, int]
markn92's avatar
markn92 committed
ConsumptionFunction = Callable[[nx.Graph, Node, Node], float]

markn92's avatar
markn92 committed

@dataclass
class Result:
    trip_time: Union[Time, None]
    charge_path: List[Tuple[Node, Time]]


class EmptyResult(Result):
    def __init__(self):
        super().__init__(trip_time=None, charge_path=[])