diff -r a5bfd99bc2a3 -r 60045b362d71 buses.py --- a/buses.py Sat Jun 24 19:38:05 2017 +0300 +++ b/buses.py Wed Jun 28 12:20:05 2017 +0300 @@ -67,7 +67,7 @@ self.involved_trips = set() def __repr__(self): return 'bus_stops[%r]' % self.reference - def schedule(self, max_amount = 50): + def schedule(self, *, max_amount = 50, arrivals = False): ''' Hakee tämän pysäkin seuraavat `määrä` lähtöä. Päätepysäkille saapuvia busseja ei lasketa. Palauttaa pysähdykset listana jossa alkiot ovat muotoa (aika, halt), @@ -85,7 +85,7 @@ while len(result) < max_amount: try: # hae nykyisen päivän aikataulut ja lisää ne, - result += self.schedule_for_day(date) + result += self.schedule_for_day(date, arrivals = arrivals) except ValueError: # paitsi jos mentiin kalenterin ulkopuolelle, jolloin lopetetaan, break @@ -93,7 +93,7 @@ date += timedelta(1) # Typistä lopputulos haluttuun tulosmäärään. return result[:max_amount] - def schedule_for_day(self, date): + def schedule_for_day(self, date, *, arrivals = False): ''' Hakee pysäkin aikataulut tiettynä päivänä. ''' @@ -109,7 +109,7 @@ # ja jos tämä trip pysähtyy tällä pysäkillä, ei kuitenkaan saapuen # päätepysäkille, stop = trip.contains_stop(self) - if stop and not stop.is_arrival: # stop is not trip.schedule[-1]: + if stop and (arrivals or not stop.is_arrival) and stop is not trip.schedule[-1]: # ja jos tämä halt on tulevaisuudessa, stop_time = datetime.combine(date, time()) + stop.arrival_time if stop_time >= now(): @@ -294,10 +294,10 @@ self.stops |= other.stops other.stops = set() other._center = None - def schedule(self, max_amount = 50): + def schedule(self, *, max_amount = 50): result = [] for stop in self.stops: - result += stop.schedule(max_amount) + result += stop.schedule(max_amount = max_amount) result.sort(key = lambda schedule_entry: schedule_entry['time']) return result[:max_amount]