1 #!/usr/bin/env python3 |
1 #!/usr/bin/env python3 |
2 def supista_reitti(reitti, kokonainen = False): |
2 def supista_reitti(reitti, kokonainen = False): |
|
3 def abstract_sign(sign): |
|
4 abstractions = { |
|
5 'Moikoinen': 'Hirvensalo', |
|
6 'Maanpää': 'Hirvensalo', |
|
7 'Papinsaari': 'Hirvensalo', |
|
8 'Häppilä': 'Hirvensalo', |
|
9 'Friskala': 'Hirvensalo', |
|
10 'Kukola': 'Hirvensalo', |
|
11 'Oriniemi': 'Hirvensalo', |
|
12 'Haarla': 'Hirvensalo', |
|
13 'Lauttasaari': 'Hirvensalo', |
|
14 'Pikisaari': 'Hirvensalo', |
|
15 'Ylioppilaskylä': 'Nummi', |
|
16 'Verkahovi': 'Nummi', |
|
17 'Vienola': 'Pahaniemi', |
|
18 'Takakirves': 'Kärsämäki', |
|
19 'Liljalaakso': 'Länsinummi', |
|
20 'Pernon telakka': 'Perno', |
|
21 } |
|
22 try: |
|
23 start = sign.index('Kauppatori') |
|
24 except ValueError: |
|
25 return sign |
|
26 result = [] |
|
27 for i, place in enumerate(sign): |
|
28 if i >= start: |
|
29 abstract_place = abstractions.get(place, place) |
|
30 if abstract_place not in result: |
|
31 result.append(abstract_place) |
|
32 else: |
|
33 result.append(place) |
|
34 return result |
3 if not reitti: |
35 if not reitti: |
4 return '' |
36 return '' |
5 kunnat = {'Turku', 'Naantali', 'Lieto', 'Aura', 'Kaarina', 'Pargas', 'Marttila', 'Somero', 'Koski Tl', 'Tarvasjoki'} |
37 kunnat = {'Turku', 'Naantali', 'Lieto', 'Aura', 'Kaarina', 'Pargas', 'Marttila', 'Somero', 'Koski Tl', 'Tarvasjoki'} |
6 replacements = { |
38 replacements = { |
7 "Ylioppilaskylä-Itä": "Ylioppilaskylä", |
39 "Ylioppilaskylä-Itä": "Ylioppilaskylä", |
136 del painot[1] |
168 del painot[1] |
137 # lajitellaan painoarvot uudestaan reittijärjestykseen jotta kyltti tulee oikeinpäin |
169 # lajitellaan painoarvot uudestaan reittijärjestykseen jotta kyltti tulee oikeinpäin |
138 painot = sorted(painot, key = lambda paino: paino[2]) |
170 painot = sorted(painot, key = lambda paino: paino[2]) |
139 # muodostetaan kyltti.. |
171 # muodostetaan kyltti.. |
140 kyltti = [paino[0] for paino in painot] |
172 kyltti = [paino[0] for paino in painot] |
141 |
173 kyltti = abstract_sign(kyltti) |
142 # supista nimet jos mahdollista |
174 # supista nimet jos mahdollista |
143 def viimeistele(kyltti, supistus_taso = 0): |
175 def viimeistele(kyltti, supistus_taso = 0): |
144 if supistus_taso > 0: |
176 if supistus_taso > 0: |
145 kyltti = [helpot_supistukset.get(paikka, paikka) for paikka in kyltti] |
177 kyltti = [helpot_supistukset.get(paikka, paikka) for paikka in kyltti] |
146 if supistus_taso > 1: |
178 if supistus_taso > 1: |