Source code for jinete.algorithms.heuristics.insertion.strategies.tail

from __future__ import (
    annotations,
)

import logging
from typing import (
    TYPE_CHECKING,
)

from .....models import (
    Trip,
)
from .abc import (
    InsertionStrategy,
)

if TYPE_CHECKING:
    from typing import (
        Iterable,
        List,
        Union,
    )
    from .....models import Route

logger = logging.getLogger(__name__)


[docs]class TailInsertionStrategy(InsertionStrategy):
[docs] def compute(self, route: Route, trips: Union[Trip, Iterable[Trip]], *args, **kwargs) -> List[Route]: previous_idx = max(len(route.stops) - 2, 0) following_idx = max(len(route.stops) - 1, 0) return super().compute(route, trips, previous_idx, following_idx, *args, **kwargs)