busroute.py

changeset 12
a47c9bde457d
parent 7
f3791dccfd03
child 13
55241f0e1079
--- a/busroute.py	Sat Jun 10 17:20:51 2017 +0300
+++ b/busroute.py	Sat Jun 10 17:40:36 2017 +0300
@@ -1,5 +1,37 @@
 #!/usr/bin/env python3
 def supista_reitti(reitti, kokonainen = False):
+	def abstract_sign(sign):
+		abstractions = {
+			'Moikoinen': 'Hirvensalo',
+			'Maanpää': 'Hirvensalo',
+			'Papinsaari': 'Hirvensalo',
+			'Häppilä': 'Hirvensalo',
+			'Friskala': 'Hirvensalo',
+			'Kukola': 'Hirvensalo',
+			'Oriniemi': 'Hirvensalo',
+			'Haarla': 'Hirvensalo',
+			'Lauttasaari': 'Hirvensalo',
+			'Pikisaari': 'Hirvensalo',
+			'Ylioppilaskylä': 'Nummi',
+			'Verkahovi': 'Nummi',
+			'Vienola': 'Pahaniemi',
+			'Takakirves': 'Kärsämäki',
+			'Liljalaakso': 'Länsinummi',
+			'Pernon telakka': 'Perno',
+		}
+		try:
+			start = sign.index('Kauppatori')
+		except ValueError:
+			return sign
+		result = []
+		for i, place in enumerate(sign):
+			if i >= start:
+				abstract_place = abstractions.get(place, place)
+				if abstract_place not in result:
+					result.append(abstract_place)
+			else:
+				result.append(place)
+		return result
 	if not reitti:
 		return ''
 	kunnat = {'Turku', 'Naantali', 'Lieto', 'Aura', 'Kaarina', 'Pargas', 'Marttila', 'Somero', 'Koski Tl', 'Tarvasjoki'}
@@ -138,7 +170,7 @@
 	painot = sorted(painot, key = lambda paino: paino[2])
 	# muodostetaan kyltti..
 	kyltti = [paino[0] for paino in painot]
-	
+	kyltti = abstract_sign(kyltti)
 	# supista nimet jos mahdollista
 	def viimeistele(kyltti, supistus_taso = 0):
 		if supistus_taso > 0:

mercurial