optimointia

Tue, 20 Jun 2017 09:39:42 +0300

author
Teemu Piippo <teemu@hecknology.net>
date
Tue, 20 Jun 2017 09:39:42 +0300
changeset 23
3a495bc4b7b5
parent 22
3d094a804af8
child 24
e6bdb9c54096

optimointia

buses.py file | annotate | diff | comparison | revisions
--- a/buses.py	Tue Jun 20 09:37:43 2017 +0300
+++ b/buses.py	Tue Jun 20 09:39:42 2017 +0300
@@ -109,7 +109,7 @@
 				# ja jos tämä ajo pysähtyy tällä pysäkillä, ei kuitenkaan saapuen
 				# päätepysäkille,
 				stop = trip.pysäkkiReitillä(self)
-				if stop and not stop.isArrival(): # stop is not trip.reitti[-1]:
+				if stop and not stop.isArrival: # stop is not trip.reitti[-1]:
 					# ja jos tämä pysähdys on tulevaisuudessa,
 					stop_time = datetime.combine(date, time()) + stop.saapumisaika
 					if stop_time >= nyt():
@@ -128,15 +128,21 @@
 		self.saapumisaika, self.lähtöaika, self.pysäkki, self.ajo = saapumisaika, lähtöaika, \
 			pysäkki, ajo
 		self.ajettu_matka = ajettu_matka
+		self._isArrival = None
+	@property
 	def isArrival(self):
-		iterator = iter(self.ajo.reitti)
-		stop = next(iterator)
-		while stop is not self:
+		if self._isArrival is None:
+			iterator = iter(self.ajo.reitti)
 			stop = next(iterator)
-		for stop in iterator:
-			if stop.pysäkki.alue != self.pysäkki.alue:
-				return False
-		return True
+			while stop is not self:
+				stop = next(iterator)
+			for stop in iterator:
+				if stop.pysäkki.alue != self.pysäkki.alue:
+					self._isArrival = False
+					break
+			else:
+				self._isArrival = True
+		return self._isArrival
 	def __repr__(self):
 		return 'Pysähdys(%r, %r, %r, %r)' % (self.saapumisaika, self.lähtöaika, self.pysäkki, self.ajo)
 

mercurial