source: dcdatagen.py

python3
Last change on this file was 1148:85e17ae7628b, checked in by István Váradi <ivaradi@…>, 2 days ago

The mapping of delay codes to their meaning is generated with the newlines replaced by a space in the meaning

  • Property exe set to *
File size: 40.0 KB
Line 
1#!/usr/bin/env python3
2# -*- coding: utf-8 -*-
3
4# Script that generates the delay code data files from a common data base
5#
6# It generates the following files:
7# - src/mlx/gui/dcdata.py: a Python module that contains the data structures
8# describing the delay code information for each aircraft type.
9# - locale/en/mlx_delay.po, local/hu/mlx_delay.po: PO files containing the
10# delay code texts. Those texts are referred to from dcdata.py
11
12#----------------------------------------------------------------------------
13
14import os
15
16#----------------------------------------------------------------------------
17
18# The list of language codes. The strings should be arrays of at least this
19# length
20languageCodes = ["en", "hu"]
21
22#----------------------------------------------------------------------------
23
24# Row type: a caption
25CAPTION = 1
26
27# Row type: an actual delay code
28DELAYCODE = 2
29
30# Row type: an actual delay code requiring a textual explanation
31DELAYCODE_EXPLANATION_REQUIRED = 3
32
33#----------------------------------------------------------------------------
34
35# Prefixes for the generated tables
36tablePrefixes = [ "common" ]
37
38# Type groups
39typeGroups = [ ["B736", "B737", "B738", "B738C", "B733", "B734", "B735",
40 "DH8D", "B762", "B763", "CRJ2", "F70", "B462",
41 "DC3", "T134", "T154", "YK40"] ]
42
43#----------------------------------------------------------------------------
44
45# The associated row or column is for the common case
46FOR_COMMON = 1
47
48#----------------------------------------------------------------------------
49
50# The complete delay code table
51table = (("info_delay_",
52 "lambda row: row[0].strip()"),
53 [ ["MA", "MA"], ["IATA", "IATA"],
54 ["Name", "Név"],["Description", "Leírás" ] ],
55 [ FOR_COMMON, FOR_COMMON, FOR_COMMON, FOR_COMMON ],
56 [ (CAPTION, FOR_COMMON,
57 ["Others", "Egyebek"] ),
58 (DELAYCODE, FOR_COMMON,
59 ["061", ("06", "OA"),
60 ["NO GATES/STAND AVAILABLE", "NINCS SZABAD KAPU/ÁLLÓHELY"],
61 ["Due to own airline activity",
62 "Saját tevékenység miatt"]]),
63 (DELAYCODE, FOR_COMMON,
64 ["091", ("09", "SG"),
65 ["SCHEDULED GROUND TIME", "ÜTEMEZETT FORDULÓ IDŐ"],
66 ["Planned turnaround time less than declared minimum",
67 "A tervezett forduló idő rövidebb a minimálisnál"]]),
68
69 (CAPTION, FOR_COMMON,
70 ["Passenger and baggage",
71 "Utas és poggyászkezelés"] ),
72 (DELAYCODE, FOR_COMMON,
73 ["111", ("11", "PD"),
74 ["LATE CHECK-IN", "KÉSEI JEGYKEZELÉS"],
75 ["Check-in reopened for late passengers",
76 "Check-in járatzárás után"]]),
77 (DELAYCODE, FOR_COMMON,
78 ["121", ("12", "PL"),
79 ["LATE CHECK-IN", "KÉSEI JEGYKEZELÉS"],
80 ["Check-in not completed by flight closure time",
81 "Torlódás az indulási csarnokban"]]),
82 (DELAYCODE, FOR_COMMON,
83 ["132", ("13", "PE"),
84 ["CHECK-IN ERROR", "JEGYKEZELÉSI HIBA"],
85 ["Error with passenger or baggage details",
86 "Téves utas és poggyászfelvétel"]]),
87 (DELAYCODE, FOR_COMMON,
88 ["142", ("14", "PO"),
89 ["OVERSALES", "TÚLKÖNYVELÉS"],
90 ["Booking errors – not resolved at check-in",
91 "Téves könyvelés, a jegykezelés során nem megoldott"]]),
92 (DELAYCODE, FOR_COMMON,
93 ["151", ("15", "PH"),
94 ["BOARDING", "BESZÁLLÍTÁS"],
95 ["Boarding discrepancies due to the passenger's fault",
96 "Beszállítási rendellenesség utas hibájából"]]),
97 (DELAYCODE, FOR_COMMON,
98 ["152", ("15", "PH"),
99 ["BOARDING", "BESZÁLLÍTÁS"],
100 ["Boarding discrepancies due to the tranzit's fault",
101 "Beszállítási rendellenesség tranzit hibájából"]]),
102 (DELAYCODE, FOR_COMMON,
103 ["161", ("16", "PS"),
104 ["COMMERCIAL PUBLICITY/\nPASSENGER CONVENIENCE",
105 "NYILVÁNOS FOGADÁS/\nUTASKÉNYELMI SZEMPONTOK"],
106 ["Local decision to delay for VIP or press; \ndelay due to offload of passengers following family bereavement",
107 "Késleltetés helyi döntés alapján reptérzár,\nbetegség/halál, VIP, sajtó, TV miatt"]]),
108 (DELAYCODE, FOR_COMMON,
109 ["171", ("17", "PC"),
110 ["CATERING ORDER", "CATERING MEGRENDELÉS"],
111 ["Late or incorrect order given to supplier",
112 "Kései vagy téves megrendelés leadása a szállítónak"]]),
113 (DELAYCODE, FOR_COMMON,
114 ["172", ("17", "PC"),
115 ["CATERING ORDER", "CATERING MEGRENDELÉS"],
116 ["Late catering order due to negligence",
117 "Kései catering megrendelés gondatlanságból"]]),
118 (DELAYCODE, FOR_COMMON,
119 ["181", ("18", "PD"),
120 ["BAGGAGE PROCESSING", "POGGYÁSZKEZELÉS"],
121 ["Late or incorrectly sorted baggage",
122 "Késő vagy tévesen szortírozott poggyász"]]),
123
124 (CAPTION, FOR_COMMON,
125 ["Cargo and mail",
126 "Áru és postakezelés"] ),
127 (DELAYCODE, FOR_COMMON,
128 ["212", ("21", "CD"),
129 ["DOCUMENTATION", "DOKUMENTÁCIÓ"],
130 ["Late or incorrect documentation for booked cargo",
131 "Hibás vagy kései áruokmányolás"]]),
132 (DELAYCODE, FOR_COMMON,
133 ["221", ("22", "CP"),
134 ["LATE POSITIONING", "KÉSEI SZÁLLÍTÁS"],
135 ["Late delivery of booked cargo to airport/aircraft",
136 "Szállítmány kései érkezése a repülőtérre"]]),
137 (DELAYCODE, FOR_COMMON,
138 ["232", ("23", "CC"),
139 ["LATE ACCEPTANCE", "KÉSEI ÁTVÉTEL"],
140 ["Acceptance of cargo after deadline",
141 "Kereskedelmi döntés, áru és posta járatzárás utáni elfogadása"]]),
142 (DELAYCODE, FOR_COMMON,
143 ["242", ("24", "CI"),
144 ["INADEQUATE PACKING", "NEM MEGFELELŐ CSOMAGOLÁS"],
145 ["Repackaging and/or re-labelling of booked cargo",
146 "Az áru újracsomagolása és/vagy -címkézése"]]),
147 (DELAYCODE, FOR_COMMON,
148 ["252", ("25", "CO"),
149 ["OVERSALES", "ÁRUTÚLKÖNYVELÉS"],
150 ["Booked load in excess of saleable load capacity\n"
151 "(weight or volume), resulting in reloading or off-load",
152 "A könyvelt terhelés meghaladja az eladható (tömeg\n"
153 "vagy térfogat) kapacitást."]]),
154 (DELAYCODE, FOR_COMMON,
155 ["261", ("26", "CU"),
156 ["LATE PREPARATION", "KÉESI ELŐKÉSZÍTÉS"],
157 ["Late preparation in warehouse.",
158 "Szállítmány kései előkészítése a raktárban"]]),
159
160 (CAPTION, FOR_COMMON,
161 ["Mail only",
162 "Postakezelés"] ),
163 (DELAYCODE, FOR_COMMON,
164 ["271", ("27", "CE"),
165 ["DOCUMENTATION, PACKING", "DOKUMENTÁCIÓ, CSOMAGOLÁS"],
166 ["Incomplete and/or inaccurate documentation",
167 "Hiányos és/vagy pontatlan dokumentáció"]]),
168 (DELAYCODE, FOR_COMMON,
169 ["281", ("28", "CL"),
170 ["LATE POSITIONING", "KÉSEI SZÁLLÍTÁS"],
171 ["Late delivery of mail to airport / aircraft",
172 "Posta kései érkezése a repülőtérre"]]),
173 (DELAYCODE, FOR_COMMON,
174 ["291", ("29", "CA"),
175 ["LATE ACCEPTANCE", "KÉSEI ÁTVÉTEL"],
176 ["Acceptance of mail after deadline",
177 "Posta járatázárás utáni átvétele"]]),
178
179 (CAPTION, FOR_COMMON,
180 ["Aircraft and Ramp Handling",
181 "Repülőgép-kiszolgálás"] ),
182 (DELAYCODE, FOR_COMMON,
183 ["312", ("31", "GD"),
184 ["LATE/INACCURATE\nAIRCRAFT DOCUMENTATION",
185 "KÉSEI/PONTATLAN\nFEDÉLZETI OKMÁNYOK"],
186 ["Late or inaccurate mass and balance documentation, \n"
187 "general declaration, passenger manifest",
188 "Fedélzeti okmányok elégtelensége, kései kiállítása"]]),
189 (DELAYCODE, FOR_COMMON,
190 ["322", ("32", "GL"),
191 ["LOADING/UNLOADING", "BE- ÉS KIRAKODÁS"],
192 ["Bulky items, special load, lack of loading staff",
193 "Különleges, súlyos vagy nagy terjedelmű áru,\n"
194 "rakodószemélyzet hiánya miatt"]]),
195 (DELAYCODE, FOR_COMMON,
196 ["324", ("32", "GL"),
197 ["LOADING/UNLOADING", "BE- ÉS KIRAKODÁS"],
198 ["Lack of loading staff",
199 "Rakodószemélyzet hiánya miatt"]]),
200 (DELAYCODE, FOR_COMMON,
201 ["332", ("33", "GE"),
202 ["LOADING EQUIPMENT", "RAKODÓBERENDEZÉSEK"],
203 ["Lack of and/or breakdown; lack of operating staff",
204 "Hiányuk vagy üzemképtelenségük, működtető személyzet hiánya"]]),
205 (DELAYCODE, FOR_COMMON,
206 ["342", ("34", "GS"),
207 ["SERVICING EQUIPMENT", "KISZOLGÁLÓ ESZKÖZÖK"],
208 ["Lack of and/or breakdown; lack of operating staff",
209 "Hiányuk vagy üzemképtelenségük, működtető személyzet hiánya"]]),
210 (DELAYCODE, FOR_COMMON,
211 ["352", ("35", "GC"),
212 ["AIRCRAFT CLEANING", "REPÜLŐGÉP TAKARÍTÁS"],
213 ["Late completion of aircraft cleaning",
214 "Késedelme vagy elhúzódása"]]),
215 (DELAYCODE, FOR_COMMON,
216 ["362", ("36", "GF"),
217 ["FUELLING/DEFUELLING", "ÜZEMANYAG TÖLTÉS/LESZÍVÁS"],
218 ["Late delivery of fuel; excludes late request",
219 "Üzemanyag kései szállítása, kivéva, ha az igénylés késett"]]),
220 (DELAYCODE, FOR_COMMON,
221 ["372", ("37", "GB"),
222 ["CATERING", "CATERING"],
223 ["Late and/or incomplete delivery; late loading",
224 "Catering kései szállítása, berakása"]]),
225 (DELAYCODE, FOR_COMMON,
226 ["381", ("38", "GU"),
227 ["ULD", "ULD"],
228 ["Lack of and/or unserviceable ULD's or pallets",
229 "Üzemképes konténerek és raklapok hiánya"]]),
230 (DELAYCODE, FOR_COMMON,
231 ["391", ("39", "GT"),
232 ["TECHNICAL EQUIPMENT", "BERENDEZÉSEK"],
233 ["Lack and/or breakdown; lack of operating staff;\n"
234 "includes GPU, air start, pushback tug, de-icing",
235 "Hiánya és/vagy elromlása, működtető személyzet hiánya\n"
236 "ide tartozik a földi áramellátó, a hajtómű indító,\n"
237 "a repülőgép-vontató és a jégtelenítő"]]),
238
239 (CAPTION, FOR_COMMON,
240 ["Technical and Aircraft Equipment",
241 "Műszaki előkészítés"] ),
242 (DELAYCODE, FOR_COMMON,
243 ["411", ("41", "TD"),
244 ["TECHNICAL DEFECTS", "REPÜLŐGÉP HIBÁK"],
245 ["Aircraft arrived with defects from abroad",
246 "Külföldről hibával érkezett repülőgép"]]),
247 (DELAYCODE, FOR_COMMON,
248 ["412", ("41", "TD"),
249 ["TECHNICAL DEFECTS", "REPÜLŐGÉP HIBÁK"],
250 ["Departing aircraft with defects",
251 "Hibásan kiállított induló repülőgép"]]),
252 (DELAYCODE, FOR_COMMON,
253 ["421", ("42", "TM"),
254 ["SCHEDULED MAINTENANCE", "TERVEZETT KARBANTARTÁS"],
255 ["Late release from maintenance due to lack of parts",
256 "Betervezett karbantartás kései befejezése alkatrészhiány miatt"]]),
257 (DELAYCODE, FOR_COMMON,
258 ["422", ("42", "TM"),
259 ["SCHEDULED MAINTENANCE", "TERVEZETT KARBANTARTÁS"],
260 ["Late release from maintenance due to bad management\n"
261 "or other internal deficiencies",
262 "Betervezett karbantartás kései befejezése rossz\n"
263 "szervezés vagy egyéb belső hiányosság miatt"]]),
264 (DELAYCODE, FOR_COMMON,
265 ["431", ("43", "TN"),
266 ["NON-SCHEDULED\nMAINTENANCE", "RENDKÍVÜLI KARBANTARTÁS"],
267 ["Special checks in an ad-hoc manner",
268 "Különleges ellenőrzések ad hoc jelleggel"]]),
269 (DELAYCODE, FOR_COMMON,
270 ["432", ("43", "TN"),
271 ["NON-SCHEDULED\nMAINTENANCE", "RENDKÍVÜLI KARBANTARTÁS"],
272 ["Lack of earlier scheduled checks",
273 "Korábbi tervezett ellenőrzések elmaradása"]]),
274 (DELAYCODE, FOR_COMMON,
275 ["441", ("44", "TS"),
276 ["SPARES AND MAINTENANCE", "PÓTALKATRÉSZEK ÉS\nKARBANTARTÁS"],
277 ["Lack of spares and equipment due to external factors",
278 "Repülőgép berendezések és alkatrészek hiánya külső okokból"]]),
279 (DELAYCODE, FOR_COMMON,
280 ["442", ("44", "TS"),
281 ["SPARES AND MAINTENANCE", "PÓTALKATRÉSZEK ÉS\nKARBANTARTÁS"],
282 ["Lack of spares and equipment due to failing to order",
283 "Repülőgép berendezések és alkatrészek hiánya\n"
284 "megrendelés hiányából"]]),
285 (DELAYCODE, FOR_COMMON,
286 ["451", ("45", "TA"),
287 ["AOG SPARES", "AOG PÓTALKATRÉSZEK"],
288 ["Awaiting AOG spare(s) to be carried to another station",
289 "Alkatrész szállítás más állomásokra, külföldi meghibásodás\n"
290 "(külföldön leragadt saját gép) esetén"]]),
291 (DELAYCODE, FOR_COMMON,
292 ["461", ("46", "TC"),
293 ["AIRCRAFT CHANGE", "REPÜLŐGÉPCSERE"],
294 ["If the reason is: 411",
295 "Ha az ok: 411"]]),
296 (DELAYCODE, FOR_COMMON,
297 ["462", ("46", "TC"),
298 ["AIRCRAFT CHANGE", "REPÜLŐGÉPCSERE"],
299 ["If the reason is: 412",
300 "Ha az ok: 412"]]),
301 (DELAYCODE, FOR_COMMON,
302 ["471", ("47", "TL"),
303 ["STANDBY AIRCRAFT", "TARTALÉK REPÜLŐGÉP"],
304 ["Standby aircraft unavailable for technical reasons",
305 "Csere repülőgép nem áll rendelkezésre, ha az ok: 411 / 461"]]),
306 (DELAYCODE, FOR_COMMON,
307 ["472", ("47", "TL"),
308 ["STANDBY AIRCRAFT", "TARTALÉK REPÜLŐGÉP"],
309 ["Standby aircraft unavailable for technical reasons",
310 "Csere repülőgép nem áll rendelkezésre, ha az ok: 412 / 462"]]),
311 (DELAYCODE, FOR_COMMON,
312 ["481", ("47", "TV"),
313 ["CABIN CONFIGURATION", "UTASTÉR KONFIGURÁCIÓ"],
314 ["Scheduled cabin configuration and version adjustments",
315 "Tervezett átszékezés"]]),
316
317 (CAPTION, FOR_COMMON,
318 ["Damage to Aircraft &amp; EDP Automated Equipment Failure",
319 "Repülőgép sérülése és számítógépes rendszerek hibái"] ),
320 (DELAYCODE, FOR_COMMON,
321 ["511", ("51", "DF"),
322 ["DAMAGE DURING\nFLIGHT OPERATIONS", "REPÜLÉS KÖZBENI SÉRÜLÉS"],
323 ["Bird or lightning strike, turbulence",
324 "Madár, villámcsapás, turbulencia"]]),
325 (DELAYCODE, FOR_COMMON,
326 ["512", ("51", "DF"),
327 ["DAMAGE DURING\nFLIGHT OPERATIONS", "REPÜLÉS KÖZBENI SÉRÜLÉS"],
328 ["Overweight landing, collisions during taxiing",
329 "Leszállási túlsúly, gurulás közbeni ütközés"]]),
330 (DELAYCODE, FOR_COMMON,
331 ["521", ("52", "DG"),
332 ["DAMAGE DURING\nGROUND OPERATIONS", "SÉRÜLÉS A FÖLDÖN"],
333 ["Not during taxiing, extreme weather conditions",
334 "Nem gurulás közben, időjárás következtében"]]),
335 (DELAYCODE, FOR_COMMON,
336 ["522", ("52", "DG"),
337 ["DAMAGE DURING\nGROUND OPERATIONS", "SÉRÜLÉS A FÖLDÖN"],
338 ["Loading/offloading damage, towing other collisions",
339 "Ki- vagy berakodásnál, vontatásnál vagy egyéb ütközések miatt"]]),
340
341 (DELAYCODE, FOR_COMMON,
342 ["551", ("55", "ED"),
343 ["DEPARTURE CONTROL", "INDULÁS-IRÁNYÍTÁS"],
344 ["System failure due to transmission errors",
345 "Rendszerleállás vonalhiba, átviteli hiba miatt"]]),
346 (DELAYCODE, FOR_COMMON,
347 ["552", ("55", "ED"),
348 ["DEPARTURE CONTROL", "INDULÁS-IRÁNYÍTÁS"],
349 ["System failure due to operator error",
350 "Rendszerleállás kezelői hiba miatt"]]),
351 (DELAYCODE, FOR_COMMON,
352 ["561", ("56", "EC"),
353 ["CARGO PREPARATION\nDOCUMENTATION", "ÁRUDOKUMENTÁCIÓ"],
354 ["System failure due to transmission errors",
355 "Rendszerleállás vonalhiba, átviteli hiba miatt"]]),
356 (DELAYCODE, FOR_COMMON,
357 ["562", ("56", "EC"),
358 ["CARGO PREPARATION\nDOCUMENTATION", "ÁRUDOKUMENTÁCIÓ"],
359 ["System failure due to operator error",
360 "Rendszerleállás kezelői hiba miatt"]]),
361 (DELAYCODE, FOR_COMMON,
362 ["571", ("57", "EF"),
363 ["FLIGHT PLANS", "REPÜLÉSI TERVEK"],
364 ["Failure of automated flight plan systems",
365 "A repülési terveket kezelő rendszerek meghibásodása"]]),
366 (DELAYCODE, FOR_COMMON,
367 ["581", ("58", "EO"),
368 ["OTHER AUTOMATED SYSTEM", "EGYÉB AUTOMATA RENDSZER"],
369 ["",
370 "Egyéb automata rendszer meghibásodása / leállása"]]),
371
372 (CAPTION, FOR_COMMON,
373 ["Flight Operations and Crewing",
374 "Repülés üzemeltetés, személyzet"] ),
375 (DELAYCODE, FOR_COMMON,
376 ["612", ("61", "FP"),
377 ["FLIGHT PLAN", "REPÜLÉSI TERV"],
378 ["Late completion of or change to flight plan",
379 "Repülési terv kései benyújtása vagy módosítása"]]),
380 (DELAYCODE, FOR_COMMON,
381 ["622", ("62", "FF"),
382 ["OPERATIONAL REQUIREMENT", "ÜZEMELTETÉSI IGÉNYEK"],
383 ["Late alteration to fuel or payload",
384 "Üzemanyag mennyiség vagy hasznos teher\n"
385 "kései módosítása"]]),
386 (DELAYCODE, FOR_COMMON,
387 ["632", ("63", "FT"),
388 ["LATE CREW BOARDING\nOR DEPARTURE PROCEDURES",
389 "SZEMÉLYZET KÉSEI MEGJELENÉSE\nVAGY ELHÚZÓDÓ INDULÁS"],
390 ["Late flight deck, or entire crew, other than standby;\n"
391 "late completion of flight deck crew checks",
392 "A repülő- vagy a teljes, nem készenléti személyzet\n"
393 "késése, az ellenőrzések elhúzódása"]]),
394 (DELAYCODE, FOR_COMMON,
395 ["642", ("64", "FS"),
396 ["FLIGHT DECK\nCREW SHORTAGE", "REPÜLŐSZEMÉLYZET\nLÉTSZÁMHIÁNYA"],
397 ["Sickness, awaiting standby, flight time limitations,\n"
398 "valid visa, health documents, etc.",
399 "Betegség, készenlét, a repülési idő korlátozásai,\n"
400 "érvényes vízum, egészségügyi papírok hiánya, stb."]]),
401 (DELAYCODE, FOR_COMMON,
402 ["652", ("65", "FR"),
403 ["FLIGHT DECK CREW\nSPECIAL REQUEST",
404 "SZEMÉLYZET KÜLÖNLEGES IGÉNYE"],
405 ["Requests not within operational requirements",
406 "Az üzemeltetési feltételeken kívül eső igények"]]),
407 (DELAYCODE, FOR_COMMON,
408 ["661", ("66", "FL"),
409 ["LATE CABIN CREW BOARDING\nOR DEPARTURE PROCEDURES",
410 "UTASKÍSÉRŐK KÉSEI MEGJELENÉSE\nVAGY ELHÚZÓDÓ INDULÁS"],
411 ["Late cabin crew other than standby; late completion\n"
412 "of cabin crew checks",
413 "Utaskísérők késése, kivéve csatlakozást vagy tartalék\n"
414 "behívást; utaskísérői ellenőrzések késése"]]),
415 (DELAYCODE, FOR_COMMON,
416 ["662", ("66", "FL"),
417 ["LATE CABIN CREW BOARDING\nOR DEPARTURE PROCEDURES",
418 "UTASKÍSÉRŐK KÉSEI MEGJELENÉSE\nVAGY ELHÚZÓDÓ INDULÁS"],
419 ["Late cabin crew other than standby; late completion\n"
420 "of cabin crew checks",
421 "Forgalmi (földi) döntés, útvonal módosítás, járatösszevonás,\n"
422 "járattörlés kereskedelmi okból"]]),
423 (DELAYCODE, FOR_COMMON,
424 ["672", ("67", "FC"),
425 ["CABIN CREW SHORTAGE", "UTASKÍSÉRŐK HIÁNYA"],
426 ["Sickness, awaiting standby, flight time limitations,\n"
427 "valid visa, health documents",
428 "Utaskísérők hiánya hibás tervezés miatt"]]),
429 (DELAYCODE, FOR_COMMON,
430 ["682", ("68", "FA"),
431 ["CABIN CREW ERROR OR\nSPECIAL REQUEST",
432 "UTASKÍSÉRŐK HIBÁJA\nVAGY KÜLÖNLEGES IGÉNYE"],
433 ["Requests not within operational requirements",
434 "Az üzemeltetési feltételeken kívül eső igények"]]),
435 (DELAYCODE, FOR_COMMON,
436 ["692", ("69", "FB"),
437 ["CAPTAIN REQUEST FOR\nSECURITY CHECK",
438 "KAPITÁNY KÉRÉSÉRE\nBIZTONSÁGI ELLENŐRZÉS"],
439 ["Extraordinary requests outside mandatory requirements",
440 "Kapitány kérésére biztonsági ellenőrzés (gép alatt)"]]),
441
442
443 (CAPTION, FOR_COMMON,
444 ["Weather", "Időjárás"] ),
445 (DELAYCODE, FOR_COMMON,
446 ["711", ("71", "WO"),
447 ["DEPARTURE STATION", "INDULÓ ÁLLOMÁS"],
448 ["Below operating limits",
449 "Kedvezőtlen/minimum alatti időjárás"]]),
450 (DELAYCODE, FOR_COMMON,
451 ["721", ("72", "WT"),
452 ["DESTINATION STATION", "CÉLÁLLOMÁS"],
453 ["Below operating limits",
454 "Kedvezőtlen/minimum alatti időjárás"]]),
455 (DELAYCODE, FOR_COMMON,
456 ["731", ("73", "WR"),
457 ["EN-ROUTE OR ALTERNATE", "ÚTVONAL VAGY\nKITÉRŐ REPÜLŐTÉR"],
458 ["Below operating limits",
459 "Kedvezőtlen/minimum alatti időjárás"]]),
460 (DELAYCODE, FOR_COMMON,
461 ["751", ("75", "WI"),
462 ["DE-ICING OF AIRCRAFT", "JÉGTELENÍTÉS"],
463 ["Removal of ice and/or snow; excludes\n"
464 "equipment – lack of or breakdown",
465 "Jég és hó eltakarítás, ha az nem a berendezések\n"
466 "hiánya vagy meghibásodása miatt késik"]]),
467 (DELAYCODE, FOR_COMMON,
468 ["752", ("75", "WI"),
469 ["DE-ICING OF AIRCRAFT", "JÉGTELENÍTÉS"],
470 ["Bad management, technology or the lack of\n"
471 "de-icing liquid",
472 "Rossz munkaszervezés, rossz technológia vagy a\n"
473 "jégtelenító folyadék hiánya miatt"]]),
474 (DELAYCODE, FOR_COMMON,
475 ["761", ("76", "WS"),
476 ["REMOVAL OF SNOW, ICE,\nWATER, AND SAND FROM\nAIRPORT",
477 "HÓ, JÉG, VÍZ ÉS\nHOMOK ELTAKARÍTÁSA\nA REPÜLŐTÉREN"],
478 ["Runway, taxiway conditions",
479 "A futópályák, gurulóutak állapota"]]),
480 (DELAYCODE, FOR_COMMON,
481 ["771", ("77", "WG"),
482 ["GROUND HANDLING\nIMPAIRED BY ADVERSE\nWEATHER CONDITIONS",
483 "AZ IDŐJÁRÁS AKADÁLYOZTA\nFÖLDI KISZOLGÁLÁST"],
484 ["High winds, heavy rain, blizzards, monsoons etc.",
485 "Erős szél, heves esőzés, hóvihar, monszun, stb."]]),
486
487 (CAPTION, FOR_COMMON,
488 ["Air Traffic Flow Management Restrictions",
489 "Légiforgalom áramlásszervezési korlátozások"] ),
490 (DELAYCODE, FOR_COMMON,
491 ["811", ("81", "AT"),
492 ["ATFM DUE TO ATC\nENROUTE DEMAND/CAPACITY",
493 "ÚTVONAL TERHELTSÉG/KAPACITÁS"],
494 ["Standard demand/capacity problems",
495 "A szokványos terheltségi és kapacitás problémák"]]),
496 (DELAYCODE, FOR_COMMON,
497 ["821", ("82", "AX"),
498 ["ATFM DUE TO ATC STAFF/\nEQUIPMENT ENROUTE",
499 "ÚTVONAL ÁTERESZTŐKÉPESSÉG\nELÉGTELENSÉGE"],
500 ["Reduced capacity caused by industrial\n"
501 "action or staff shortage, equipment failure,\n"
502 "military exercise or extraordinary demand\n"
503 "due to capacity reduction in neighbouring area",
504 "Csökkent kapacitás sztrájk vagy munkaerőhiány,\n"
505 "berendezések meghibásodása, hadgyakorlat vagy\n"
506 "egy szomszédos terület kapacitáscsökkenési miatti\n"
507 "megnövekedett leterheltség"]]),
508 (DELAYCODE, FOR_COMMON,
509 ["835", ("83", "AE"),
510 ["ATFM DUE TO\nRESTRICTION AT\nDESTINATION AIRPORT",
511 "KORLÁTOZÁSOK A\nCÉLÁLLOMÁSON"],
512 ["Airport and/or runway closed due to obstruction,\n"
513 "industrial action, staff shortage, political unrest,\n"
514 "noise abatement, night curfew, special flights",
515 "A repülőtér és/vagy a futopálya bezárt akadály,\n"
516 "sztrájk, munkaerőhiány, politikai megmozdulások\n"
517 "zajcsökkentés, kijárási tilalom, kölönleges járatok miatt"]]),
518 (DELAYCODE, FOR_COMMON,
519 ["841", ("84", "AW"),
520 ["ATFM DUE TO WEATHER\n AT DESTINATION",
521 "ÁRAMLÁSSZERVESÉS A\nCÉLÁLLOMÁS IDŐJÁRÁSA MIATT"],
522 ["", ""]]),
523
524 (CAPTION, FOR_COMMON,
525 ["Airport and state authorities",
526 "Repülőtéri és állami hatóságok"] ),
527 (DELAYCODE, FOR_COMMON,
528 ["851", ("85", "AS"),
529 ["MANDATORY SECURITY", "BIZTONSÁGI ELLENŐRZÉS" ],
530 ["Passengers, baggage, crew, etc.",
531 "Utasok, poggyász, személyzet, stb."]]),
532 (DELAYCODE, FOR_COMMON,
533 ["852", ("85", "AS"),
534 ["MANDATORY SECURITY", "BOMBARIADÓ" ],
535 ["Passengers, baggage, crew, etc.",
536 "Bombariadó."]]),
537 (DELAYCODE, FOR_COMMON,
538 ["861", ("86", "AG"),
539 ["IMMIGRATION, CUSTOMS,\nHEALTH",
540 "VÁMHATÓSÁGI ELLENŐRZÉSEK" ],
541 ["Passengers, crew",
542 "Vámhatósági ellenőrzések"]]),
543 (DELAYCODE, FOR_COMMON,
544 ["862", ("86", "AG"),
545 ["IMMIGRATION, CUSTOMS,\nHEALTH",
546 "HATÁRRENDÉSZETI ELLENŐRZÉSEK" ],
547 ["Passengers, crew",
548 "Határrendészeti ellenőrzések"]]),
549 (DELAYCODE, FOR_COMMON,
550 ["863", ("86", "AG"),
551 ["IMMIGRATION, CUSTOMS,\nHEALTH",
552 "EGÉSZSÉGÜGYI ELLENŐRZÉSEK" ],
553 ["Passengers, crew",
554 "Egészségügyi ellenőrzések"]]),
555 (DELAYCODE, FOR_COMMON,
556 ["871", ("87", "AF"),
557 ["AIRPORT FACILITIES", "REPÜLŐTÉRI LÉTESÍTMÉNYEK" ],
558 ["Parking stands, ramp congestion, lighting,\n"
559 "buildings, gate limitations etc.",
560 "Repülőtéri befogadó és áteresztőképességének\n"
561 "elégtelensége, állóhely (lépcső stb.) hiánya,\n"
562 "torlódás az előtéren, kijáratok zsúfoltsága."]]),
563 (DELAYCODE, FOR_COMMON,
564 ["881", ("88", "AD"),
565 ["RESTRICTIONS AT\nDESTINATION AIRPORT",
566 "KORLÁTOZÁSOK A\nCÉLÁLLOMÁSON" ],
567 ["Airport and/or runway closed due to obstruction,\n"
568 "industrial action, staff shortage, political unrest,\n"
569 "noise abatement, night curfew, special flights",
570 "Korlátozások a repülőtéren, leszállópályazárlat,\n"
571 "sztrájk, politikai esemény vagy zajvédelem miatt"]]),
572 (DELAYCODE, FOR_COMMON,
573 ["891", ("89", "AM"),
574 ["RESTRICTIONS AT\nAIRPORT OF DEPARTURE\n"
575 "WITH OR WITHOUT ATFM RESTRICTIONS",
576 "KORLÁTOZÁSOK AZ INDULÓ\n"
577 "ÁLLOMÁSON ÁRAMLÁS-SZERVEZÉSI\n"
578 "KORLÁTOZÁSOKKALVAGY\nAZOK NÉLKÜL"],
579 ["Including air traffic services, start-up and pushback,\n"
580 "airport and/or runway closed due to obstruction or weather\n"
581 "(restriction due to weather in case of ATFM only) industrial\n"
582 "action, staff shortage, political unrest, noise abatement,\n"
583 "night curfew, special flights",
584 "Repülőtéri befogadó és áteresztőképességének elégtelensége,\n",
585 "állóhely (lépcső stb.) hiánya, torlódás az előtéren,\n"
586 "kijáratok zsúfoltsága, leszállópályazárlat, sztrájk,\n"
587 "politikai esemény vagy zajvédelem miatt"]]),
588
589 (CAPTION, FOR_COMMON,
590 ["Reactionary", "Visszahatások"] ),
591
592 (DELAYCODE, FOR_COMMON,
593 ["911", ("91", "RL"),
594 ["LOAD CONNECTION", "HASZNOS TEHER\nCSATLAKOZÁSA"],
595 ["Awaiting load from another flight",
596 "Csatlakozásra várás más járatról, utas és áru"]]),
597 (DELAYCODE, FOR_COMMON,
598 ["921", ("91", "RT"),
599 ["THROUGH CHECK-IN ERROR", "JEGYKEZELÉSI HIBA"],
600 ["Passenger or baggage check-in error at originating station",
601 "Utas- vagy csomagkezelési hiba az induló állomáson"]]),
602 (DELAYCODE, FOR_COMMON,
603 ["931", ("93", "RA"),
604 ["AIRCRAFT ROTATION", "REPÜLŐGÉP ROTÁCIÓ"],
605 ["Late arrival of aircraft from another flight or previous sector",
606 "Repülőgép kései érkezése előző járatról\n"
607 "(nem vállalati okok miatt)"]]),
608 (DELAYCODE, FOR_COMMON,
609 ["932", ("93", "RA"),
610 ["AIRCRAFT ROTATION", "REPÜLŐGÉP ROTÁCIÓ"],
611 ["Late arrival of aircraft from another flight or previous sector",
612 "Repülőgép kései érkezése előző járatról\n"
613 "(vállalati okok miatt)"]]),
614 (DELAYCODE, FOR_COMMON,
615 ["941", ("94", "RS"),
616 ["CABIN CREW ROTATION", "UTASKÍSÉRŐ ROTÁCIÓ"],
617 ["Awaiting cabin crew from another flight",
618 "Utaskísérők kései érkezése előző járatról"]]),
619 (DELAYCODE, FOR_COMMON,
620 ["951", ("95", "RC"),
621 ["CREW ROTATION", "SZEMÉLYZET ROTÁCIÓ"],
622 ["Awaiting flight deck, or entire crew, from another flight",
623 "Teljes személyzet kései érkezése előző járatról"]]),
624 (DELAYCODE, FOR_COMMON,
625 ["961", ("96", "RO"),
626 ["OPERATIONS CONTROL", "ÜZEMELTETÉS"],
627 ["Re-routing, diversion, consolidation, aircraft change\n"
628 "for reasons other than technical",
629 "Útvonalváltoztatás, repülőgép cseréje nem műszaki okokból"]]),
630
631 (CAPTION, FOR_COMMON,
632 ["Miscellaneous", "Egyéb"] ),
633 (DELAYCODE, FOR_COMMON,
634 ["971", ("97", "MI"),
635 ["INDUSTRIAL ACTION\nWITHIN OWN AIRLINE",
636 "MUNKAÜGYI AKCIÓ SAJÁT\nLÉGITÁRSASÁGON BELÜL"],
637 ["",
638 "Sztrájk, lassító sztrájk vállalaton belül"]]),
639 (DELAYCODE, FOR_COMMON,
640 ["981", ("98", "MO"),
641 ["INDUSTRIAL ACTION\nOUTSIDE OWN AIRLINE",
642 "MUNKAÜGYI AKCIÓ SAJÁT\nLÉGITÁRSASÁGON KÍVÜL"],
643 ["Industrial action (except Air Traffic Control Services)",
644 "Sztrájk, lassító sztrájk vállalaton kívül"]]),
645 (DELAYCODE_EXPLANATION_REQUIRED, FOR_COMMON,
646 ["991", ("99", "MX"),
647 ["MISCELLANEOUS", "EGYÉB"],
648 ["No suitable code; explain reason(s) in plain text",
649 "A táblázatban nem szereplő egyéb ok (szöveges indoklást igényel)"]])
650 ])
651
652#-------------------------------------------------------------------------------
653
654def generateMsgStr(file, text):
655 """Generate an 'msgstr' entry for the given text."""
656 lines = text.splitlines()
657 numLines = len(lines)
658 if numLines==0:
659 print("msgstr \" \"", file=file)
660 elif numLines==1:
661 print("msgstr \"%s\"" % (lines[0]), file=file)
662 else:
663 print("msgstr \"\"", file=file)
664 for i in range(0, numLines):
665 print("\"%s%s\"" % (lines[i], "" if i==(numLines-1) else "\\n"), file=file)
666 print(file=file)
667
668#-------------------------------------------------------------------------------
669
670def generateFiles(baseDir):
671 """Generate the various files."""
672 dcdata = None
673 poFiles = []
674
675 try:
676 dcdataPath = os.path.join(baseDir, "src", "mlx", "gui", "dcdata.py")
677 dcdata = open(dcdataPath, "wt")
678
679 numLanguages = len(languageCodes)
680 for language in languageCodes:
681 poPath = os.path.join(baseDir, "locale", language, "mlx_delay.po")
682 poFile = open(poPath, "wt")
683 poFiles.append(poFile)
684 print("msgid \"\"", file=poFile)
685 print("msgstr \"\"", file=poFile)
686 print("\"Content-Type: text/plain; charset=utf-8\\n\"", file=poFile)
687 print("\"Content-Transfer-Encoding: 8bit\\n\"", file=poFile)
688
689 (baseData, headings, headingFlags, rows) = table
690 (poPrefix, extractor) = baseData
691
692 for i in range(0, len(headings)):
693 heading = headings[i]
694 for j in range(0, numLanguages):
695 poFile = poFiles[j]
696 print("msgid \"%sheading%d\"" % (poPrefix, i), file=poFile)
697 generateMsgStr(poFile, heading[j])
698
699
700 rowIndex = 0
701 for (type, _tableMask, columns) in rows:
702 if type==CAPTION:
703 for i in range(0, numLanguages):
704 poFile = poFiles[i]
705 print("msgid \"%srow%d\"" % (poPrefix, rowIndex), file=poFile)
706 generateMsgStr(poFile, columns[i])
707 elif type in [DELAYCODE, DELAYCODE_EXPLANATION_REQUIRED]:
708 columnIndex = 0
709 for column in columns:
710 if isinstance(column, list):
711 for i in range(0, numLanguages):
712 if any(column):
713 poFile = poFiles[i]
714 print("msgid \"%srow%d_col%d\"" % \
715 (poPrefix, rowIndex, columnIndex), file=poFile)
716 generateMsgStr(poFile, column[i])
717 columnIndex += 1
718 rowIndex += 1
719
720 print("import mlx.const as const", file=dcdata)
721 print("from mlx.i18n import xstr", file=dcdata)
722 print(file=dcdata)
723 print("CAPTION = 1", file=dcdata)
724 print("DELAYCODE = 2", file=dcdata)
725 print(file=dcdata)
726
727 tableMask = 1
728 for i in range(0, len(tablePrefixes)):
729 print("_%s_code2meaning = {" % (tablePrefixes[i],), file=dcdata)
730
731 columnIndexes = []
732 for j in range(0, len(headings)):
733 if ( (headingFlags[j]&tableMask)==tableMask ):
734 columnIndexes.append(j)
735
736 codeIndex = columnIndexes[0]
737 meaningIndex = columnIndexes[2]
738
739 rowIndex = 0
740 for (type, mask, columns) in rows:
741 if (mask&tableMask)!=tableMask:
742 continue
743
744 if type in [DELAYCODE, DELAYCODE_EXPLANATION_REQUIRED]:
745 print(" \"%s\": \"%s\"," % \
746 (str(columns[codeIndex]).strip(), columns[meaningIndex][0].replace("\n", " ")), file=dcdata)
747
748 print("}", file=dcdata)
749 print(file=dcdata)
750
751 tableMask <<= 1
752
753 print("def _extract(table, row):", file=dcdata)
754 print(" code = row[0].strip()", file=dcdata)
755 print(" meaning = table[code] if code in table else None", file=dcdata)
756 print(" return code", file=dcdata)
757 print(file=dcdata)
758
759 tableMask = 1
760 for i in range(0, len(tablePrefixes)):
761 print("_%s_code2explanationRequired = {" % (tablePrefixes[i],), file=dcdata)
762
763 columnIndexes = []
764 for j in range(0, len(headings)):
765 if ( (headingFlags[j]&tableMask)==tableMask ):
766 columnIndexes.append(j)
767
768 codeIndex = columnIndexes[0]
769 meaningIndex = columnIndexes[2]
770
771 rowIndex = 0
772 for (type, mask, columns) in rows:
773 if (mask&tableMask)!=tableMask:
774 continue
775
776 if type in [DELAYCODE, DELAYCODE_EXPLANATION_REQUIRED]:
777 print(" \"%s\": %s," % \
778 (str(columns[codeIndex]).strip(),
779 "True" if type==DELAYCODE_EXPLANATION_REQUIRED else
780 "False"),
781 file = dcdata)
782
783 print("}", file=dcdata)
784 print(file=dcdata)
785
786 tableMask <<= 1
787
788 print("def _isExplanationRequired(table, row):", file=dcdata)
789 print(" code = row[0].strip()", file=dcdata)
790 print(" return table[code] if code in table else false", file=dcdata)
791 print(file=dcdata)
792
793 tableMask = 1
794 for i in range(0, len(tablePrefixes)):
795
796 print("_%s_data = (" % (tablePrefixes[i],), file=dcdata)
797 print(" (lambda row: row[0].strip(),", file=dcdata)
798 print(" lambda row: _extract(_%s_code2meaning, row)," % \
799 (tablePrefixes[i],), file=dcdata)
800 print(" lambda row: _isExplanationRequired(_%s_code2explanationRequired, row))," % \
801 (tablePrefixes[i],), file=dcdata)
802 print(" [", end=' ', file=dcdata)
803
804 columnIndexes = []
805 for j in range(0, len(headings)):
806 if ( (headingFlags[j]&tableMask)==tableMask ):
807 if columnIndexes:
808 print(",", end=' ', file=dcdata)
809 print("xstr(\"%sheading%d\")" % (poPrefix, j), end=' ', file=dcdata)
810 columnIndexes.append(j)
811
812 print("],", file=dcdata)
813
814 print(" [", file=dcdata)
815
816 rowIndex = 0
817 for (type, mask, columns) in rows:
818 if (mask&tableMask)!=tableMask:
819 rowIndex += 1
820 continue
821
822 if type==CAPTION:
823 print(" (CAPTION, xstr(\"%srow%d\"))," % \
824 (poPrefix, rowIndex), file=dcdata)
825 elif type in [DELAYCODE, DELAYCODE_EXPLANATION_REQUIRED]:
826 print(" (DELAYCODE, [", file=dcdata)
827 for j in columnIndexes:
828 column = columns[j]
829 if j!=columnIndexes[0]:
830 print(",", file=dcdata)
831 if isinstance(column, list):
832 if any(column):
833 print(" xstr(\"%srow%d_col%d\")" % \
834 (poPrefix, rowIndex, j), end=' ', file=dcdata)
835 else:
836 print(" \"\"", end=' ', file=dcdata)
837 elif isinstance(column, tuple) and len(column)==2:
838 print(" \"%s (%s)\"" % \
839 (column[0], column[1]), end = ' ', file = dcdata)
840 else:
841 print(" \"%s\"" % \
842 (column,), end=' ', file=dcdata)
843 print("] ),", file=dcdata)
844 rowIndex += 1
845
846 print(" ]", file=dcdata)
847
848 print(")", file=dcdata)
849 print(file=dcdata)
850
851 tableMask <<= 1
852
853 print("def getTable(aircraftType):", file=dcdata)
854 first = True
855 for i in range(0, len(tablePrefixes)):
856 tablePrefix = tablePrefixes[i]
857 for typeSuffix in typeGroups[i]:
858 print(" %s aircraftType==const.AIRCRAFT_%s:" % \
859 ("if" if first else "elif", typeSuffix), file=dcdata)
860 print(" return _%s_data" % (tablePrefix,), file=dcdata)
861 first = False
862
863 print(" else:", file=dcdata)
864 print(" return None", file=dcdata)
865 finally:
866 for poFile in poFiles:
867 poFile.close()
868 if dcdata is not None:
869 dcdata.close()
870
871#-------------------------------------------------------------------------------
872
873if __name__ == "__main__":
874 generateFiles(os.path.dirname(__file__))
Note: See TracBrowser for help on using the repository browser.