Source code for openlr_dereferencer.observer.abstract

"Contains the abstract observer class for the decoder"
from abc import abstractmethod
from typing import Sequence

from openlr import LocationReferencePoint

from ..decoding.candidate import Candidate
from ..maps import Line


[docs]class DecoderObserver: "Abstract class representing an observer to the OpenLR decoding process"
[docs] @abstractmethod def on_candidates_found(self, lrp: LocationReferencePoint, candidates: Sequence[Candidate]): "Called by the decoder when it finds a list of candidates for a location reference point"
[docs] @abstractmethod def on_route_success(self, from_lrp: LocationReferencePoint, to_lrp: LocationReferencePoint, from_line: Line, to_line: Line, path: Sequence[Line]): """Called after the decoder successfully finds a route between two candidate lines for successive location reference points"""
[docs] @abstractmethod def on_route_fail(self, from_lrp: LocationReferencePoint, to_lrp: LocationReferencePoint, from_line: Line, to_line: Line): """Called after the decoder fails to find a route between two candidate lines for successive location reference points"""