stsobj
Objektklassen für die Stellwerksim Pluginschnittstelle
Dieses Modul deklariert das Datenmodell des Pluginklienten (stsplugin-Modul).
Die Gliederung entspricht weitgehend der Struktur der xml-Daten von der Schnittstelle.
Für jedes Tag gibt es eine Klasse mit den Tag-Attributen.
Die Tag- und Attributnamen sind ähnlich wie im xml-Protokoll, es gibt aber Abweichungen.
Die Daten werden in Python-Typen übersetzt.
Einige der Klassen haben noch zusätzliche Attribute, die vom Klienten ausgefüllt werden.
Alle Objekte werden leer konstruiert und über die update-Methode mit Daten gefüllt. Die update-Methoden erwarten geparste xml-Daten in einem untangle.Element-Objekt.
Classes:
-
AnlagenInfo–Anlageninformationen.
-
BahnsteigInfo–Bahnsteiginformationen.
-
Ereignis–Ereignis der Pluginschnittstelle
-
FahrplanZeile–Fahrplanzeile
-
Knoten–Gleisbildelement ("Knoten").
-
ZugDetails–Zugdetails.
Functions:
-
format_minutes–Minuten in Stunden:Minuten formatieren.
-
format_verspaetung–Verspätung formatieren.
-
minutes_to_time–Minuten seit Mitternacht in Uhrzeit umrechnen.
-
seconds_to_time–Sekunden seit Mitternacht in Uhrzeit umrechnen.
-
time_to_minutes–Uhrzeit in Minuten seit Mitternacht umrechnen.
-
time_to_seconds–Uhrzeit in Sekunden seit Mitternacht umrechnen.
AnlagenInfo
Anlageninformationen.
Diese Klasse entspricht dem xml-Tag "anlageninfo".
Attributes:
-
aid(int) –Nummer des Stellwerks.
-
name(str) –Name des Stellwerks.
-
build(int) –Build-Nummer von Stellwerksim.
-
region(str) –Name der Region.
-
online(bool) –Online-Spiel (True) oder Sandbox (False).
Methods:
-
update–Attribute vom xml-Dokument übernehmen.
Source code in stskit/plugin/stsobj.py
update
update(item: Mapping) -> AnlagenInfo
Attribute vom xml-Dokument übernehmen.
Parameters:
-
(itemMapping) –Dictionary mit den Attributen aus dem xml-Tag.
Returns:
-
AnlagenInfo–AnlagenInfo-Objekt
Source code in stskit/plugin/stsobj.py
BahnsteigInfo
Bahnsteiginformationen.
Diese Klasse entspricht dem xml-Tag "bahnsteig" mit den Ergänzungen nachbarn und zuege.
Attributes:
-
name(str) –Name des Bahnsteigs.
-
haltepunkt(bool) –Haltepunkt (True) oder Bahnhofgleis (False). Bestimmt, ob eine Fahrstrasse beim Halt aufgelöst wird (False) oder nicht (True). Hat in STSdispo keine bedeutung.
-
nachbarn_namen(list[str]) –Namen von Nachbarbahnsteigen. Alle miteinander verbundenen Nachbarbahnsteige bilden in STSdispo einen Bahnhofteil.
-
nachbarn(WeakValueDictionary[str, BahnsteigInfo]) –Dictionary von BahnsteigInfo-Objekten nach Namen.
-
zuege(WeakValueDictionary[int, ZugDetails]) –Liste von Zügen, die den Bahnsteig in ihrem Fahrplan haben (disponiertes Gleis). Diese Liste wird nicht automatisch gefüllt. Um sie zu nutzen, muss sie durch Aufruf von [stskit.plugin.stsplugin.PluginClient.update_bahnsteig_zuege] explizit gefüllt werden.
Methods:
-
update–Attribute vom xml-Dokument übernehmen.
Source code in stskit/plugin/stsobj.py
update
update(item: Element) -> BahnsteigInfo
Attribute vom xml-Dokument übernehmen.
Die Namen der Nachbarbahnsteige werden in nachbarn_namen gespeichert.
Die nachbarn und zuege Attribute sind möglicherweise veraltet.
Parameters:
-
(itemElement) –Dictionary mit den Attributen aus dem xml-Tag.
Returns:
-
BahnsteigInfo–Self
Source code in stskit/plugin/stsobj.py
Ereignis
flowchart TD
stskit.plugin.stsobj.Ereignis[Ereignis]
stskit.plugin.stsobj.ZugDetails[ZugDetails]
stskit.plugin.stsobj.ZugDetails --> stskit.plugin.stsobj.Ereignis
click stskit.plugin.stsobj.Ereignis href "" "stskit.plugin.stsobj.Ereignis"
click stskit.plugin.stsobj.ZugDetails href "" "stskit.plugin.stsobj.ZugDetails"
Ereignis der Pluginschnittstelle
Ein Ereignis-Tag von der Pluginschnittstelle sieht z.B. so aus:
<ereignis zid='1' art='einfahrt' name='RE 10' verspaetung='+2' gleis='1' plangleis='1'
von='A-Stadt' nach='B-Hausen' sichtbar='true' amgleis='true' />
Der Tag enthält dieselben Daten wie ein Zugdetails-Tag und zusätzlich die Art des Ereignisses. Die Zeit wird vom PluginClient gesetzt.
Zusätzlich zu den von der Pluginschnittstelle gemeldeten Ereignissen (in Ereignis.arten), erzeugt der PluginClient ein Ereignis 'ersatz', wenn ein Zug durch Ersatz (Nummernwechsel) unsichtbar wird. Der Zugdetailsinhalt entspricht in diesem Fall dem letzten Ankunftsereignis, wobei sichtbar = False.
Methods:
-
__eq__–Gleichheit zweier Ereignisse
-
__hash__–hash-Funktion basierend auf Gleichheitsklasse.
-
find_fahrplan–Index und Fahrplanzeile nach Gleis und/oder Zeit suchen
-
find_fahrplan_index–Fahrplanzeilenindex nach Gleis und/oder Zeit suchen
-
find_fahrplanzeile–Fahrplanzeile nach Gleis und/oder Zeit suchen.
-
graph–Fahrplan im networkx directed Graph Format
-
route–Route (Reihe von Stationen) des Zuges als Generator
-
update–Attributwerte vom xml-Dokument übernehmen.
Attributes:
-
gattung(str | None) –Zuggattung aus dem Zugnamen.
-
ist_rangierfahrt(bool) –Rangierfahrt anzeigen.
-
nummer(int) –Zugnummer aus dem Zugnamen.
Source code in stskit/plugin/stsobj.py
gattung
property
gattung: str | None
Zuggattung aus dem Zugnamen.
Die Zuggattung ist das alphabetische Präfix aus dem Zugnamen, z.B. "ICE". In gewissen Regionen wie z.B. der Schweiz oder Grossbritannien fehlt dieses Präfix.
Returns:
-
str | None–Zuggattung. None, wenn keine Gattung bestimmt werden kann.
ist_rangierfahrt
property
ist_rangierfahrt: bool
Rangierfahrt anzeigen.
Als Rangierfahrten gelten Züge, die den Zusatz Lok, Ersatzlok oder RF im Namen tragen.
Returns:
-
bool–True, wenn der Zug eine Rangierfahrt darstellt.
nummer
property
nummer: int
Zugnummer aus dem Zugnamen.
Die Nummer ist der hinterste rein numerische Teil des Zugnamens, z.b. 8376 in "S8 8376 RF"
Diese hat nichts mit der zid zu tun.
Beispiele von Zugnummern: - "536": 536 - "ICE 624": 624 - "S8 8376 RF": 8376 - "S 8449 S12": 8449
Returns:
-
int–Zugnummer. 0, falls der Name keine Ziffer enthält.
__eq__
Gleichheit zweier Ereignisse
Ereignisse werden als gleich erachtet, wenn art, zid und gleis gleich sind. Dies kann dazu benutzt werden, wiederholte Ereignismeldungen zu filtern. (Die Pluginschnittstelle schickt gewisse ereignismeldungen wie rothalt und abfahrt wiederholt.)
Source code in stskit/plugin/stsobj.py
__hash__
__hash__() -> int
hash-Funktion basierend auf Gleichheitsklasse.
Ereignisse werden als gleich erachtet, wenn art, zid und gleis gleich sind. Für solchermassen "gleiche" Ereignisse generiert diese Funktion den gleichen hash-Wert. Dies kann dazu benutzt werden, wiederholte Ereignismeldungen zu filtern. (Die Pluginschnittstelle schickt gewisse ereignismeldungen wie rothalt und abfahrt wiederholt.)
Source code in stskit/plugin/stsobj.py
find_fahrplan
find_fahrplan(gleis: str | None = None, plan: str | None = None, zeit: time | None = None) -> tuple[int | None, FahrplanZeile | None]
Index und Fahrplanzeile nach Gleis und/oder Zeit suchen
Alle angegebenen Kriterien müssen zutreffen. Die Zeit muss grösser oder gleich der Ankunftszeit (wenn bekannt) und kleiner oder gleich der Abfahrtszeit (wenn bekannt) sein. Wenn eine der Zeiten nicht bekannt ist, wird das entsprechende Kriterium als erfüllt gewertet.
Parameters:
-
(gleisstr | None, default:None) –Gleiskriterium (Gross-/Kleinschreibung egal)
-
(planstr | None, default:None) –Plangleiskriterium (Gross-/Kleinschreibung egal)
-
(zeittime | None, default:None) –Zeitkriterium, wahr, wenn der Wert zwischen Ankunft und Abfahrt des Eintrags liegt
Returns:
-
int | None–Listenindex im Fahrplan und FahrplanZeile-Objekt.
-
FahrplanZeile | None–Beide Resultate sind None, wenn kein passender Eintrag gefunden wurde.
Source code in stskit/plugin/stsobj.py
find_fahrplan_index
find_fahrplan_index(gleis: str | None = None, plan: str | None = None, zeit: time | None = None) -> int | None
Fahrplanzeilenindex nach Gleis und/oder Zeit suchen
Alle angegebenen Kriterien müssen zutreffen. Die Zeit muss grösser oder gleich der Ankunftszeit (wenn bekannt) und kleiner oder gleich der Abfahrtszeit (wenn bekannt) sein. Wenn eine der Zeiten nicht bekannt ist, wird das entsprechende Kriterium als erfüllt gewertet.
Diese Methode ist ein Wrapper von find_fahrplan, der nur den Index zurückgibt.
Parameters:
-
(gleisstr | None, default:None) –Gleiskriterium (Gross-/Kleinschreibung egal)
-
(planstr | None, default:None) –Plangleiskriterium (Gross-/Kleinschreibung egal)
-
(zeittime | None, default:None) –Zeitkriterium, wahr, wenn der Wert zwischen Ankunft und Abfahrt des Eintrags liegt
Returns:
Source code in stskit/plugin/stsobj.py
find_fahrplanzeile
find_fahrplanzeile(gleis: str | None = None, plan: str | None = None, zeit: time | None = None) -> FahrplanZeile | None
Fahrplanzeile nach Gleis und/oder Zeit suchen.
Alle angegebenen Kriterien müssen zutreffen. Die Zeit muss grösser oder gleich der Ankunftszeit (wenn bekannt) und kleiner oder gleich der Abfahrtszeit (wenn bekannt) sein. Wenn eine der Zeiten nicht bekannt ist, wird das entsprechende Kriterium als erfüllt gewertet.
Diese Methode ist ein Wrapper von find_fahrplan, der nur das Fahrplanobjekt zurückgibt.
Parameters:
-
(gleisstr | None, default:None) –Gleiskriterium (Gross-/Kleinschreibung egal)
-
(planstr | None, default:None) –Plangleiskriterium (Gross-/Kleinschreibung egal)
-
(zeittime | None, default:None) –Zeitkriterium, wahr, wenn der Wert zwischen Ankunft und Abfahrt des Eintrags liegt
Returns:
-
FahrplanZeile | None–FahrplanZeile-Objekt oder None.
Source code in stskit/plugin/stsobj.py
graph
Fahrplan im networkx directed Graph Format
Die Knoten sind Anschluss- oder Gleisnamen und haben folgende Attribute:
- typ: 'anschluss' oder 'gleis'
- an: Ankunftszeit als datetime.time (kann fehlen)
- ab: Ankunftszeit als datetime.time (kann fehlen)
- aufenthalt: Aufenthaltszeit in sekunden (kann fehlen)
Die Kanten haben folgende Attribute:
- fahrzeit: Planmässige Fahrzeit in sekunden (kann fehlen)
Returns:
-
DiGraph–networkx-Graph
Source code in stskit/plugin/stsobj.py
route
Route (Reihe von Stationen) des Zuges als Generator
Die Route ist eine Liste von Stationen (Gleisen, inkl. Ein- und Ausfahrt) in der Reihenfolge des Fahrplans. Ein- und Ausfahrten können bei Ersatzzügen o.ä. fehlen. Durchfahrtsgleise sind auch enthalten.
Ein etwaiges Präfix 'Gleis' bei Nummernwechsel wird entfernt.
Parameters:
-
(planbool, default:False) –Plangleise statt effektive Gleise melden
Returns:
-
None–Generator von Gleisnamen.
Source code in stskit/plugin/stsobj.py
update
Attributwerte vom xml-Dokument übernehmen.
Parameters:
-
(ereignisMapping) –Mapping mit den Attributen aus dem xml-Tag.
Source code in stskit/plugin/stsobj.py
FahrplanZeile
FahrplanZeile(zug: ZugDetails)
Fahrplanzeile
Attributes:
-
zug(ZugDetails) –Zugehöriges Zug-Objekt.
-
gleis(str) –Disponiertes Gleis.
-
plan(str) –Plangleis.
-
an(time | None) –Ankunftszeit. Nicht alle Fahrplanzeilen haben eine Ankunftszeit.
-
ab(time | None) –Abfahrtszeit. Nicht alle Fahrplanzeilen haben eine Abfahrtszeit.
-
flags(str) –Siehe unten.
-
hinweistext(str) –
Flags
A: Vorzeitige Abfahrt möglichBn: ThemenflagD: DurchfahrtE(zid): NummernwechselF(zid): FlügelnK(zid): KuppelnL: LokumlaufP: AnfangsaufstellungsplatzR: RichtungsänderungW[enr][enr]: Lokwechsel
Methods:
-
__eq__–Gleichheit von zwei Fahrplanzeilen feststellen.
-
__hash__–Zugziel-Hash
-
durchfahrt–Durchfahrt-Flag
-
ersatz_zid–zid aus dem Ersatz-Flag
-
fluegel_zid–zid aus dem Fluegeln-Flag
-
kuppel_zid–zid aus dem Kuppel-Flag
-
lokumlauf–Lokumlauf-Flag
-
lokwechsel–Lokwechsel-Flag
-
richtungswechsel–Richtungswechsel-Flag
-
update–Daten von untangle-Element oder anderer FahrplanZeile übernehmen.
-
vorzeitige_abfahrt–Vorzeitige-Abfahrt-Flag
Source code in stskit/plugin/stsobj.py
fid
property
Fahrplanziel-Identifikation
Die fid bildet den eindeutigen Fahrzielschlüssel für den Zielgraph.
Die Identifikation besteht aus den eindeutigen Attributen zid, Zeit in Minuten und Plangleis.
Die ID wird beim ersten Gebrauch aus den genannten Attributen generiert und bleibt danach konstant.
Das Property sollte daher nicht verwendet werden, bevor die Attribute ausgefüllt sind.
Die Attribute an, ab und plan alleine sind (auch für einen Zug) nicht eindeutig:
an oder ab können None sein, das Gleis kann mehrmals angefahren werden.
an kann sich beim Nummernwechsel ändern.
Returns:
-
FahrplanZeileID–Dreiertupel (
zid,zeit,plan). -
FahrplanZeileID–zeitist entweder die Ankunfts- oder Abfahrtszeit in Minuten. -
FahrplanZeileID–planist das Plangleis.
__eq__
__eq__(other: FahrplanZeile) -> bool
Gleichheit von zwei Fahrplanzeilen feststellen.
Gleichheit bedeutet: gleicher Zug und gleiches Plangleis. Jedes plangleis kommt im sts-Fahrplan nur einmal vor.
Parameters:
-
(otherFahrplanZeile) –zu vergleichendes FahrplanZeile-Objekt
Returns:
-
bool–True, wenn Zug und Plangleis übereinstimmen, sonst False
Source code in stskit/plugin/stsobj.py
__hash__
__hash__() -> int
durchfahrt
durchfahrt() -> bool
ersatz_zid
ersatz_zid() -> int | None
fluegel_zid
fluegel_zid() -> int | None
kuppel_zid
kuppel_zid() -> int | None
lokumlauf
lokumlauf() -> bool
lokwechsel
Lokwechsel-Flag
Returns:
-
tuple[int, int] | None–Elementnummern der Ein- und Ausfahrgleise oder None.
-
tuple[int, int] | None–Die Gleise können in einer beliebigen Reihenfolge auftreten.
-
tuple[int, int] | None–Einfahrt/Ausfahrt kann aus dem Elementtyp bestimmt werden.
Source code in stskit/plugin/stsobj.py
richtungswechsel
richtungswechsel() -> bool
update
update(item: Mapping) -> FahrplanZeile
Daten von untangle-Element oder anderer FahrplanZeile übernehmen.
Es werden nur die Attribute übernommen, die von der Pluginschnittstelle geliefert werden.
Parameters:
-
(itemMapping) –eines von folgenden Objekten:
- untangle.Element mit dem gleis-Tag von der Simulatorschnittstelle,
- ein anderes FahrplanZeile-Objekt,
- Dictionary mit Werten, die den Attributen dieser Klasse entsprechen.
Source code in stskit/plugin/stsobj.py
Knoten
Gleisbildelement ("Knoten").
Diese Klasse entspricht dem xml-Tag shape aus dem wege-Tag.
Verbindungen aus connector-Tags werden im Attribut nachbarn gespeichert.
Bahnsteige haben nur einen Namen.
Alle anderen Tags haben eine enr-Nummer und einen Namen.
Die enr ist fortlaufend über alle Elemente beginnend bei 1.
Die enr hat nichts mit Signal- oder Weichennummern gemeinsam.
Die enr wird, wo vorhanden, im connector-Tag verwendet.
Bei Bahnsteigen wird der Name angegeben.
Anschlüsse können den gleichen Namen wie ein Bahnsteig haben, da sie per enr identifiziert werden.
Da wir alle Elemente im gleichen Dictionary speichern wollen,
deklariert diese klasse noch einen key, der den Knoten eindeutig identifiziert.
Der key ist, wo deklariert, gleich der enr-Nummer und sonst gleich dem Namen.
Attributes:
-
key(int | str | None) –Entspricht
enrfalls definiert, sonstname. Bahnsteige und Haltepunkte haben nur einen Namen, die anderen Elemente haben sowohl eine Nummer und einen Namen. Dieses Attribut für jedes Element definiert und eindeutig. -
enr(int | None) –enr-Nummer vom Simulator, falls deklariert, sonst None. Bahnsteige und Haltepunkte haben keineenr. -
name(str | None) –namevom Simulator, falls deklariert, sonst None. Es kann mehrere Elemente mit dem gleichen Namen geben (z.B. Anschluss und Bahnsteig). -
typ(int) –Typnummer, s.
TYP_NAMEoderTYP_NUMMER. -
nachbarn(WeakValueDictionary[int | str, Knoten]) –Nachbarelemente aus den
connector-Tags. -
zuege(WeakValueDictionary[int, ZugDetails]) –Züge, die über das Gleiselement fahren (nur bei Einfahrten, Ausfahrten, Bahnsteigen und Haltepunkten). Diese Liste wird nicht automatisch gefüllt. Um sie zu nutzen, muss sie durch Aufruf von [stskit.plugin.stsplugin.PluginClient.update_wege_zuege] explizit gefüllt werden.
Methods:
-
update–Attributwerte vom xml-Dokument übernehmen.
Source code in stskit/plugin/stsobj.py
update
Attributwerte vom xml-Dokument übernehmen.
Parameters:
-
(shapeMapping) –Mapping mit den Attributen aus dem xml-Tag.
Returns:
-
Knoten–self
Source code in stskit/plugin/stsobj.py
ZugDetails
Zugdetails.
Die Attribute entsprechen dem zugdetails-Tag der Pluginschnittstelle
mit den Ergänzungen ziel_index und stamm_zids.
Attributes:
-
zid(int) –Identifikationsnummer. Die zid ist für den Anwender verborgen. Die zid kann negativ sein (z.B. Ersatzloks).
-
name(str) –Zugname (Gattung + Nummer + ev. andere Zusätze)
-
von(str) –Herkunft (Name des Gleises)
-
nach(str) –Endziel (Name des Gleises)
-
verspaetung(int) –Verspätung (oder Verfrühung, wenn negativ) in Minuten
-
sichtbar(bool) –Zug ist im Stellwerk.
-
gleis(str) –Nächstes, disponiertes Zielgleis. Umgeleitete und ausfahrende Züge haben kein Zielgleis.
-
plangleis(str) –Nächstes Zielgleis nach Fahrplan. Umgeleitete und ausfahrende Züge haben kein Plangleis.
-
amgleis(bool) –Zug steht am Gleis
gleis. -
hinweistext(str) – -
usertext(str) – -
usertextsender(str) – -
fahrplan(list[FahrplanZeile]) –Fahrplaneinträge.
-
ziel_index(int | None) –Fahrplanindex des aktuellen Ziels. Wird vom PluginClient aktualisiert.
-
stamm_zids(set[int]) –Menge von
zidaller Züge, in deren Flags dieser Zug vorkommt. Wird vom PluginClient aktualisiert.
Methods:
-
__str__–Einfach lesbare Beschreibung
-
find_fahrplan–Index und Fahrplanzeile nach Gleis und/oder Zeit suchen
-
find_fahrplan_index–Fahrplanzeilenindex nach Gleis und/oder Zeit suchen
-
find_fahrplanzeile–Fahrplanzeile nach Gleis und/oder Zeit suchen.
-
graph–Fahrplan im networkx directed Graph Format
-
route–Route (Reihe von Stationen) des Zuges als Generator
-
update–Attributwerte vom xml-Dokument übernehmen.
Source code in stskit/plugin/stsobj.py
gattung
property
gattung: str | None
Zuggattung aus dem Zugnamen.
Die Zuggattung ist das alphabetische Präfix aus dem Zugnamen, z.B. "ICE". In gewissen Regionen wie z.B. der Schweiz oder Grossbritannien fehlt dieses Präfix.
Returns:
-
str | None–Zuggattung. None, wenn keine Gattung bestimmt werden kann.
ist_rangierfahrt
property
ist_rangierfahrt: bool
Rangierfahrt anzeigen.
Als Rangierfahrten gelten Züge, die den Zusatz Lok, Ersatzlok oder RF im Namen tragen.
Returns:
-
bool–True, wenn der Zug eine Rangierfahrt darstellt.
nummer
property
nummer: int
Zugnummer aus dem Zugnamen.
Die Nummer ist der hinterste rein numerische Teil des Zugnamens, z.b. 8376 in "S8 8376 RF"
Diese hat nichts mit der zid zu tun.
Beispiele von Zugnummern: - "536": 536 - "ICE 624": 624 - "S8 8376 RF": 8376 - "S 8449 S12": 8449
Returns:
-
int–Zugnummer. 0, falls der Name keine Ziffer enthält.
__str__
__str__() -> str
Einfach lesbare Beschreibung
Zeigt den Zugnamen, von/nach, das nächste Gleis, die Verspätung und Unsichtbarkeit an.
Returns:
-
str–Beschreibung als String.
Source code in stskit/plugin/stsobj.py
find_fahrplan
find_fahrplan(gleis: str | None = None, plan: str | None = None, zeit: time | None = None) -> tuple[int | None, FahrplanZeile | None]
Index und Fahrplanzeile nach Gleis und/oder Zeit suchen
Alle angegebenen Kriterien müssen zutreffen. Die Zeit muss grösser oder gleich der Ankunftszeit (wenn bekannt) und kleiner oder gleich der Abfahrtszeit (wenn bekannt) sein. Wenn eine der Zeiten nicht bekannt ist, wird das entsprechende Kriterium als erfüllt gewertet.
Parameters:
-
(gleisstr | None, default:None) –Gleiskriterium (Gross-/Kleinschreibung egal)
-
(planstr | None, default:None) –Plangleiskriterium (Gross-/Kleinschreibung egal)
-
(zeittime | None, default:None) –Zeitkriterium, wahr, wenn der Wert zwischen Ankunft und Abfahrt des Eintrags liegt
Returns:
-
int | None–Listenindex im Fahrplan und FahrplanZeile-Objekt.
-
FahrplanZeile | None–Beide Resultate sind None, wenn kein passender Eintrag gefunden wurde.
Source code in stskit/plugin/stsobj.py
find_fahrplan_index
find_fahrplan_index(gleis: str | None = None, plan: str | None = None, zeit: time | None = None) -> int | None
Fahrplanzeilenindex nach Gleis und/oder Zeit suchen
Alle angegebenen Kriterien müssen zutreffen. Die Zeit muss grösser oder gleich der Ankunftszeit (wenn bekannt) und kleiner oder gleich der Abfahrtszeit (wenn bekannt) sein. Wenn eine der Zeiten nicht bekannt ist, wird das entsprechende Kriterium als erfüllt gewertet.
Diese Methode ist ein Wrapper von find_fahrplan, der nur den Index zurückgibt.
Parameters:
-
(gleisstr | None, default:None) –Gleiskriterium (Gross-/Kleinschreibung egal)
-
(planstr | None, default:None) –Plangleiskriterium (Gross-/Kleinschreibung egal)
-
(zeittime | None, default:None) –Zeitkriterium, wahr, wenn der Wert zwischen Ankunft und Abfahrt des Eintrags liegt
Returns:
Source code in stskit/plugin/stsobj.py
find_fahrplanzeile
find_fahrplanzeile(gleis: str | None = None, plan: str | None = None, zeit: time | None = None) -> FahrplanZeile | None
Fahrplanzeile nach Gleis und/oder Zeit suchen.
Alle angegebenen Kriterien müssen zutreffen. Die Zeit muss grösser oder gleich der Ankunftszeit (wenn bekannt) und kleiner oder gleich der Abfahrtszeit (wenn bekannt) sein. Wenn eine der Zeiten nicht bekannt ist, wird das entsprechende Kriterium als erfüllt gewertet.
Diese Methode ist ein Wrapper von find_fahrplan, der nur das Fahrplanobjekt zurückgibt.
Parameters:
-
(gleisstr | None, default:None) –Gleiskriterium (Gross-/Kleinschreibung egal)
-
(planstr | None, default:None) –Plangleiskriterium (Gross-/Kleinschreibung egal)
-
(zeittime | None, default:None) –Zeitkriterium, wahr, wenn der Wert zwischen Ankunft und Abfahrt des Eintrags liegt
Returns:
-
FahrplanZeile | None–FahrplanZeile-Objekt oder None.
Source code in stskit/plugin/stsobj.py
graph
Fahrplan im networkx directed Graph Format
Die Knoten sind Anschluss- oder Gleisnamen und haben folgende Attribute:
- typ: 'anschluss' oder 'gleis'
- an: Ankunftszeit als datetime.time (kann fehlen)
- ab: Ankunftszeit als datetime.time (kann fehlen)
- aufenthalt: Aufenthaltszeit in sekunden (kann fehlen)
Die Kanten haben folgende Attribute:
- fahrzeit: Planmässige Fahrzeit in sekunden (kann fehlen)
Returns:
-
DiGraph–networkx-Graph
Source code in stskit/plugin/stsobj.py
route
Route (Reihe von Stationen) des Zuges als Generator
Die Route ist eine Liste von Stationen (Gleisen, inkl. Ein- und Ausfahrt) in der Reihenfolge des Fahrplans. Ein- und Ausfahrten können bei Ersatzzügen o.ä. fehlen. Durchfahrtsgleise sind auch enthalten.
Ein etwaiges Präfix 'Gleis' bei Nummernwechsel wird entfernt.
Parameters:
-
(planbool, default:False) –Plangleise statt effektive Gleise melden
Returns:
-
None–Generator von Gleisnamen.
Source code in stskit/plugin/stsobj.py
update
update(zugdetails: Mapping) -> ZugDetails
Attributwerte vom xml-Dokument übernehmen.
Der Fahrplan wird von dieser Methode nicht berührt.
Parameters:
-
(zugdetailsMapping) –Mapping mit den Attributen aus dem xml-Tag.
Returns:
-
ZugDetails–self
Source code in stskit/plugin/stsobj.py
format_minutes
Minuten in Stunden:Minuten formatieren.
Parameters:
Returns:
-
str–Formatierte Zeit
Source code in stskit/plugin/stsobj.py
format_verspaetung
Verspätung formatieren.
minutes_to_time
seconds_to_time
Sekunden seit Mitternacht in Uhrzeit umrechnen.
Parameters:
-
(secondsfloat) –Sekunden seit Mitternacht. Dezimalstellen werden auf ganze Sekunden gerundet.
Returns:
-
time–Zeit als
datetime.timeauf ganze Sekunden gerundet.
Source code in stskit/plugin/stsobj.py
time_to_minutes
Uhrzeit in Minuten seit Mitternacht umrechnen.
Parameters:
Returns:
-
int–Minuten, ganzzahlig
Raises:
-
AttributeError–Typ nicht kompatibel oder None.
Source code in stskit/plugin/stsobj.py
time_to_seconds
Uhrzeit in Sekunden seit Mitternacht umrechnen.
Parameters:
Returns:
-
int–Sekunden, ganzzahlig
Raises:
-
AttributeError–Typ nicht kompatibel oder None.