Source code for pyhafas.profile.interfaces.requests.station_board
import abc
import datetime
from typing import Dict, List, Optional
from pyhafas.types.fptf import Station, StationBoardLeg
from pyhafas.types.hafas_response import HafasResponse
from pyhafas.types.station_board_request import StationBoardRequestType
[docs]class StationBoardRequestInterface(abc.ABC):
[docs] def format_station_board_request(
self,
station: Station,
request_type: StationBoardRequestType,
date: datetime.datetime,
max_trips: int,
duration: int,
products: Dict[str, bool],
direction: Optional[Station]
) -> dict:
"""
Creates the HaFAS request for Station Board (departure/arrival)
:param station: Station to get departures/arrivals for
:param request_type: ARRIVAL or DEPARTURE
:param date: Date and time to get departures/arrival for
:param max_trips: Maximum number of trips that can be returned
:param products: Allowed products (a product is a mean of transport like ICE,IC)
:param duration: Time in which trips are searched
:param direction: Direction (end) station of the train. If none, filter will not be applied
:return: Request body for HaFAS
"""
pass
[docs] def parse_station_board_request(
self,
data: HafasResponse,
departure_arrival_prefix: str) -> List[StationBoardLeg]:
"""
Parses the HaFAS data for a station board request
:param data: Formatted HaFAS response
:param departure_arrival_prefix: Prefix for specifying whether its for arrival or departure
:return: List of StationBoardLeg objects
"""
pass