from anyjson import deserialize import requests API_KEY: str = '<key>' def fetch_departures(station_id: int, timespan: Optional[int]=None) \ -> List[Dict[str, Union[str, int]]]: timespan = timespan or 30 api_url = (f'http://api.sl.se/api2/realtimedeparturesV4.json?' f’key={API_KEY}&siteid={station_id} f’&timewindow={timespan}') departure_data = deserialize(requests.get(api_url)) return [ { 'line': int(train['LineNumber']), 'destination': train['Destination'], 'arrival': train['ExpectedDateTime'] } for train in departure_data['ResponseData']['Metros'] ] departures.py from anyjson import deserialize import requests API_KEY = '<key>' def fetch_departures(station_id, timespan=None): timespan = timespan or 30 api_url = (f'http://api.sl.se/api2/realtimedeparturesV4.json?' f'key={API_KEY}&siteid={station_id}' f'&timewindow={timespan}') departure_data = deserialize(requests.get(api_url)) return [ { 'line': int(train['LineNumber']), 'destination': train['Destination'], 'arrival': train['ExpectedDateTime'] } for train in departure_data['ResponseData']['Metros'] ] departures.py from typing import Dict, List, Optional, Union API_KEY: str = ... def fetch_departures(station_id: int, timespan: Optional[int]=None) \ -> List[Dict[str, Union[int, str]]]: ... departures.pyi