Source code for symupy.tsc.journey

from dataclasses import dataclass, field
from typing import Any, Union
from symupy.tsc.network import Zone, Node, Link
from symupy.tsc.vehicles import Vehicle


[docs]@dataclass class Path: links: list = field(default_factory=list) length: float = -1 def __getitem__(self, attr): return self.__dict__[attr] def __setitem__(self, attr, value): self.__dict__[attr] = value def __repr__(self): return f"Path({len(self.links)} links, length={self.length})"
[docs]@dataclass class State: time: str = None speed: float = 0 acceleration: float = 0 curvilinear_abscissa: float = 0 absolute_position: list = field(default_factory=list) link: str = None lane: int = None def __getitem__(self, attr): return self.__dict__[attr] def __setitem__(self, attr, value): self.__dict__[attr] = value
[docs]@dataclass class Trip: states: list = field(default_factory=list) vehicle: Vehicle = None mode: str = None path: Path = None departure_time: str = None arrival_time: str = None origin: Union[Node, Link, Zone] = None destination: Union[Node, Link, Zone] = None def __getitem__(self, attr): return self.__dict__[attr] def __setitem__(self, attr, value): self.__dict__[attr] = value def __repr__(self): return f"Trip(veh={self.vehicle}, origin={self.origin.__repr__()}, destination={self.destination.__repr__()}, {len(self.states)} states)"
[docs]@dataclass class Journey: trips: list = field(default_factory=list) origin: Union[Node, Link, Zone] = None destination: Union[Node, Link, Zone] = None def __getitem__(self, attr): return self.__dict__[attr] def __setitem__(self, attr, value): self.__dict__[attr] = value def __repr__(self): return f"Sensor(id={self.id.__repr__()}, {len(self.links)} links)"