Skip to content

Instantly share code, notes, and snippets.

@d3d9
Last active May 13, 2019 16:56
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save d3d9/1c9a65f43e66043fd26786b93605b7b7 to your computer and use it in GitHub Desktop.
Save d3d9/1c9a65f43e66043fd26786b93605b7b7 to your computer and use it in GitHub Desktop.
ifopt_haltestelle1 = "..."
ifopt_haltestelle2 = "..."
# siehe dm_depdata.py:
'''
Liste von nacheinander (im Falle von mehreren Fehlschlägen ※) abzuarbeitenden Funktionen
mit jeweils nacheinander (siehe ※) erstmal abzuarbeitenden Argumenten,
alles nacheinander durchlaufend, bis irgendwas erfolgreich ein Ergebnis liefert.
Verschiedene Funktionen -- Callable[..., type_depmsgdata] -- in der oberen Liste sind sinnvoll,
wenn man z. B. nach Fehlschlagen bei der DB-Schnittstelle eine andere,
z. B. VRR EFA-Schnittstelle verwenden will, und dies eben eine andere aufzurufende Funktion erfordert.
Verschiedene Argumente in der tiefer liegenden Liste -- List[Dict[str, Any]] --
sind sinnvoll wenn man bei der gleichen Schnittstellenart/Funktion nach dem Fehlschlagen bleiben will,
und nur andere Argumente verwenden will, z. B. nur eine andere Server-URL.
'''
type_depfnlist = List[Tuple[Callable[..., type_depmsgdata],
List[Dict[str, Any]]]]
'''
Tuple[str, bool] --> Bezeichnung für diesen "Strang"; und ob nach endgültigem (nach mehreren Retries,
und nach Durchlaufen der angegebenen Ausweichoptionen siehe oben) Fehlschlagen alles als fehlgeschlagen gilt,
oder ob das Fehlschlagen dieses gesamten "Stranges" "ignoriert" werden kann.
'''
type_depfns = Dict[Tuple[str, bool], type_depfnlist]
# in dm_tomatrixled.py, wird dann im Aufruf pe.submit(getdeps, depfunctions=depfunctions, ...) verwendet:
depfunctions: type_depfns = {
("haltestelle1", True): [(getefadeps, [{'serverurl': efaserver,
'timeout': servertimeout,
'ifopt': ifopt_haltestelle1,
'limit': limit*args.limit_multiplier,
'tz': tz,
'exclMOT': trainTMOTefa,
'ignore_infoTypes': ignore_infoTypes,
'ignore_infoIDs': ignore_infoIDs,
'content_for_short_titles': content_for_short_titles,
},
{'serverurl': efaserver_backup,
'timeout': servertimeout,
'ifopt': ifopt_haltestelle1,
'limit': limit*args.limit_multiplier,
'tz': tz,
'exclMOT': trainTMOTefa,
'ignore_infoTypes': ignore_infoTypes,
'ignore_infoIDs': ignore_infoIDs,
'content_for_short_titles': content_for_short_titles,
},
])
],
("haltestelle2", True): [(getefadeps, [{'serverurl': efaserver,
'timeout': servertimeout,
'ifopt': ifopt_haltestelle2,
'limit': limit*args.limit_multiplier,
'tz': tz,
'exclMOT': trainTMOTefa,
'ignore_infoTypes': ignore_infoTypes,
'ignore_infoIDs': ignore_infoIDs,
'content_for_short_titles': content_for_short_titles,
},
{'serverurl': efaserver_backup,
'timeout': servertimeout,
'ifopt': ifopt_haltestelle2,
'limit': limit*args.limit_multiplier,
'tz': tz,
'exclMOT': trainTMOTefa,
'ignore_infoTypes': ignore_infoTypes,
'ignore_infoIDs': ignore_infoIDs,
'content_for_short_titles': content_for_short_titles,
},
])
],
}
# Beispiel ohne Backup-Serveradressen:
depfunctions: type_depfns = {
("haltestelle1", True): [(getefadeps, [{'serverurl': efaserver,
'timeout': servertimeout,
'ifopt': ifopt_haltestelle1,
'limit': limit*args.limit_multiplier,
'tz': tz,
'exclMOT': trainTMOTefa,
'ignore_infoTypes': ignore_infoTypes,
'ignore_infoIDs': ignore_infoIDs,
'content_for_short_titles': content_for_short_titles,
},
])
],
("haltestelle2", True): [(getefadeps, [{'serverurl': efaserver,
'timeout': servertimeout,
'ifopt': ifopt_haltestelle2,
'limit': limit*args.limit_multiplier,
'tz': tz,
'exclMOT': trainTMOTefa,
'ignore_infoTypes': ignore_infoTypes,
'ignore_infoIDs': ignore_infoIDs,
'content_for_short_titles': content_for_short_titles,
},
])
],
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment