buses.py

changeset 23
3a495bc4b7b5
parent 22
3d094a804af8
child 24
e6bdb9c54096
equal deleted inserted replaced
22:3d094a804af8 23:3a495bc4b7b5
107 # jos tämä ajovuoro ajetaan tänä päivänä 107 # jos tämä ajovuoro ajetaan tänä päivänä
108 if trip.ajetaan_päivänä(date): 108 if trip.ajetaan_päivänä(date):
109 # ja jos tämä ajo pysähtyy tällä pysäkillä, ei kuitenkaan saapuen 109 # ja jos tämä ajo pysähtyy tällä pysäkillä, ei kuitenkaan saapuen
110 # päätepysäkille, 110 # päätepysäkille,
111 stop = trip.pysäkkiReitillä(self) 111 stop = trip.pysäkkiReitillä(self)
112 if stop and not stop.isArrival(): # stop is not trip.reitti[-1]: 112 if stop and not stop.isArrival: # stop is not trip.reitti[-1]:
113 # ja jos tämä pysähdys on tulevaisuudessa, 113 # ja jos tämä pysähdys on tulevaisuudessa,
114 stop_time = datetime.combine(date, time()) + stop.saapumisaika 114 stop_time = datetime.combine(date, time()) + stop.saapumisaika
115 if stop_time >= nyt(): 115 if stop_time >= nyt():
116 # lisää pysähdys listaan. 116 # lisää pysähdys listaan.
117 result.append({ 117 result.append({
126 class Pysähdys: 126 class Pysähdys:
127 def __init__(self, saapumisaika, lähtöaika, pysäkki, ajo, ajettu_matka): 127 def __init__(self, saapumisaika, lähtöaika, pysäkki, ajo, ajettu_matka):
128 self.saapumisaika, self.lähtöaika, self.pysäkki, self.ajo = saapumisaika, lähtöaika, \ 128 self.saapumisaika, self.lähtöaika, self.pysäkki, self.ajo = saapumisaika, lähtöaika, \
129 pysäkki, ajo 129 pysäkki, ajo
130 self.ajettu_matka = ajettu_matka 130 self.ajettu_matka = ajettu_matka
131 self._isArrival = None
132 @property
131 def isArrival(self): 133 def isArrival(self):
132 iterator = iter(self.ajo.reitti) 134 if self._isArrival is None:
133 stop = next(iterator) 135 iterator = iter(self.ajo.reitti)
134 while stop is not self:
135 stop = next(iterator) 136 stop = next(iterator)
136 for stop in iterator: 137 while stop is not self:
137 if stop.pysäkki.alue != self.pysäkki.alue: 138 stop = next(iterator)
138 return False 139 for stop in iterator:
139 return True 140 if stop.pysäkki.alue != self.pysäkki.alue:
141 self._isArrival = False
142 break
143 else:
144 self._isArrival = True
145 return self._isArrival
140 def __repr__(self): 146 def __repr__(self):
141 return 'Pysähdys(%r, %r, %r, %r)' % (self.saapumisaika, self.lähtöaika, self.pysäkki, self.ajo) 147 return 'Pysähdys(%r, %r, %r, %r)' % (self.saapumisaika, self.lähtöaika, self.pysäkki, self.ajo)
142 148
143 linjat = {} 149 linjat = {}
144 linjat_per_tunniste = {} 150 linjat_per_tunniste = {}

mercurial