Added retrieve_stops argument
This commit is contained in:
parent
80a788933d
commit
1b863c55f1
@ -3,7 +3,7 @@ from pyrmv.classes.Message import Message
|
||||
|
||||
class LineArrival():
|
||||
|
||||
def __init__(self, data, client):
|
||||
def __init__(self, data, client, retrieve_stops: bool = True):
|
||||
self.journey = client.journey_detail(data["JourneyDetailRef"]["ref"])
|
||||
self.status = data["JourneyStatus"]
|
||||
self.messages = []
|
||||
@ -14,6 +14,10 @@ class LineArrival():
|
||||
self.stop_name = data["stop"]
|
||||
self.stop_id = data["stopid"]
|
||||
self.stop_id_ext = data["stopExtId"]
|
||||
if retrieve_stops:
|
||||
self.stop = client.stop_by_id(self.stop_id)
|
||||
else:
|
||||
self.stop = None
|
||||
self.stop = client.stop_by_id(self.stop_id)
|
||||
self.time = datetime.strptime(data["time"], "%H:%M:%S")
|
||||
self.date = datetime.strptime(data["date"], "%Y-%m-%d")
|
||||
@ -28,7 +32,7 @@ class LineArrival():
|
||||
|
||||
class LineDeparture():
|
||||
|
||||
def __init__(self, data, client):
|
||||
def __init__(self, data, client, retrieve_stops: bool = True):
|
||||
self.journey = client.journey_detail(data["JourneyDetailRef"]["ref"])
|
||||
self.status = data["JourneyStatus"]
|
||||
self.messages = []
|
||||
@ -39,7 +43,10 @@ class LineDeparture():
|
||||
self.stop_name = data["stop"]
|
||||
self.stop_id = data["stopid"]
|
||||
self.stop_id_ext = data["stopExtId"]
|
||||
self.stop = client.stop_by_id(self.stop_id)
|
||||
if retrieve_stops:
|
||||
self.stop = client.stop_by_id(self.stop_id)
|
||||
else:
|
||||
self.stop = None
|
||||
self.time = datetime.strptime(data["time"], "%H:%M:%S")
|
||||
self.date = datetime.strptime(data["date"], "%Y-%m-%d")
|
||||
if ("rtTime" in data) and ("rtDate" in data):
|
||||
@ -54,10 +61,10 @@ class LineDeparture():
|
||||
|
||||
class BoardArrival(list):
|
||||
|
||||
def __init__(self, data: dict, client):
|
||||
def __init__(self, data: dict, client, retrieve_stops: bool = True):
|
||||
super().__init__([])
|
||||
for line in data["Arrival"]:
|
||||
self.append(LineArrival(line, client))
|
||||
self.append(LineArrival(line, client, retrieve_stops=retrieve_stops))
|
||||
|
||||
def __str__(self) -> str:
|
||||
lines = []
|
||||
@ -67,10 +74,10 @@ class BoardArrival(list):
|
||||
|
||||
class BoardDeparture(list):
|
||||
|
||||
def __init__(self, data: dict, client):
|
||||
def __init__(self, data: dict, client, retrieve_stops: bool = True):
|
||||
super().__init__([])
|
||||
for line in data["Departure"]:
|
||||
self.append(LineDeparture(line, client))
|
||||
self.append(LineDeparture(line, client, retrieve_stops=retrieve_stops))
|
||||
|
||||
def __str__(self) -> str:
|
||||
lines = []
|
||||
|
@ -81,6 +81,7 @@ class Client():
|
||||
lines: Union[str, list, None] = None,
|
||||
passlist: bool = False,
|
||||
board_type: Literal[BoardArrivalType.ARR, BoardArrivalType.ARR_EQUIVS, BoardArrivalType.ARR_MAST, BoardArrivalType.ARR_STATION] = BoardArrivalType.ARR,
|
||||
retrieve_stops: bool = True
|
||||
) -> BoardArrival:
|
||||
"""Method returns a board with arriving transport.
|
||||
|
||||
@ -98,6 +99,7 @@ class Client():
|
||||
* lines (`Union[str, list]`, **optional**): Only journeys running the given line are part of the result. To filter multiple lines, provide a list or separate the codes by comma or provide a list. If the line should not be part of the be trip, negate it by putting ! in front of it. Defaults to `None`.
|
||||
* passlist (`bool`, **optional**): Include a list of all passed waystops. Defaults to `False`.
|
||||
* board_type (`Union[BoardArrivalType.ARR, BoardArrivalType.ARR_EQUIVS, BoardArrivalType.ARR_MAST, BoardArrivalType.ARR_STATION]`, optional): Set the station arrival board type to be used. Defaults to `BoardArrivalType.ARR`.
|
||||
* retrieve_stops (`bool`, **optional**): Whether the stops should be retrieved as a `Stop` objects. Using `False` will drastically decrease number of requests made (good for low access_key rate limit). Defaults to `True`.
|
||||
|
||||
### Returns:
|
||||
* BoardArrival: Instance of `BoardArrival` object.
|
||||
@ -123,7 +125,7 @@ class Client():
|
||||
|
||||
find_exception(board_raw)
|
||||
|
||||
return BoardArrival(board_raw, self)
|
||||
return BoardArrival(board_raw, self, retrieve_stops=retrieve_stops)
|
||||
|
||||
def board_departure(self,
|
||||
id: Union[str, None] = None,
|
||||
@ -137,6 +139,7 @@ class Client():
|
||||
lines: Union[str, list, None] = None,
|
||||
passlist: bool = False,
|
||||
board_type: Literal[BoardDepartureType.DEP, BoardDepartureType.DEP_EQUIVS, BoardDepartureType.DEP_MAST, BoardDepartureType.DEP_STATION] = BoardDepartureType.DEP,
|
||||
retrieve_stops: bool = True
|
||||
) -> BoardDeparture:
|
||||
"""Method returns a board with departing transport.
|
||||
|
||||
@ -154,6 +157,7 @@ class Client():
|
||||
* lines (`Union[str, list]`, **optional**): Only journeys running the given line are part of the result. To filter multiple lines, provide a list or separate the codes by comma or provide a list. If the line should not be part of the be trip, negate it by putting ! in front of it. Defaults to `None`.
|
||||
* passlist (`bool`, **optional**): Include a list of all passed waystops. Defaults to `False`.
|
||||
* board_type (`Union[BoardDepartureType.DEP, BoardDepartureType.DEP_EQUIVS, BoardDepartureType.DEP_MAST, BoardDepartureType.DEP_STATION]`, optional): Set the station departure board type to be used. Defaults to `BoardDepartureType.DEP`.
|
||||
* retrieve_stops (`bool`, **optional**): Whether the stops should be retrieved as a `Stop` objects. Using `False` will drastically decrease number of requests made (good for low access_key rate limit). Defaults to `True`.
|
||||
|
||||
### Returns:
|
||||
* BoardDeparture: Instance of `BoardDeparture` object.
|
||||
@ -179,7 +183,7 @@ class Client():
|
||||
|
||||
find_exception(board_raw)
|
||||
|
||||
return BoardDeparture(board_raw, self)
|
||||
return BoardDeparture(board_raw, self, retrieve_stops=retrieve_stops)
|
||||
|
||||
def him_search(self,
|
||||
date_begin: Union[str, datetime, None] = None,
|
||||
|
Loading…
Reference in New Issue
Block a user