"""Welche Waehrungen Certain kennt. Eine Waehrung ist nur dann brauchbar, wenn es Kurse zu ihr gibt: Ohne Kurs liesse sich ein Betrag zwar hinschreiben, aber nie in die Hauptwaehrung umrechnen – er stuende in keiner Summe, in keinem Budget, in keiner Auswertung. Frei erfundene Waehrungen anzubieten waere deshalb eine Falle. Massgeblich ist darum die Liste der EZB: genau die Waehrungen, fuer die sie werktaeglich einen Referenzkurs veroeffentlicht. EUR ist der Drehpunkt und braucht keinen eigenen Kurs (implizit 1.0). """ # Der Drehpunkt. Steht bewusst getrennt: Fuer ihn gibt es keine Kurszeile. PIVOT = "EUR" # Die Waehrungen des taeglichen EZB-Referenzkurs-Feeds. EZB_WAEHRUNGEN = { "USD", "JPY", "BGN", "CZK", "DKK", "GBP", "HUF", "PLN", "RON", "SEK", "CHF", "ISK", "NOK", "TRY", "AUD", "BRL", "CAD", "CNY", "HKD", "IDR", "ILS", "INR", "KRW", "MXN", "MYR", "NZD", "PHP", "SGD", "THB", "ZAR", } # Alles, was irgendwo als Waehrung eingetragen werden darf. ERLAUBT = EZB_WAEHRUNGEN | {PIVOT} # Reihenfolge fuer Auswahlfelder: das Naheliegende zuerst, der Rest alphabetisch. VORNE = ["EUR", "CHF", "USD", "GBP"] def auswahl() -> list[str]: """Alle erlaubten Waehrungen, brauchbar sortiert.""" rest = sorted(ERLAUBT - set(VORNE)) return VORNE + rest