from collections.abc import Callable from enum import StrEnum, auto from gchr.gchr_export_skr51 import export_skr51_xml from gchr.gchr_export_volkswagen import export_volkswagen_xml from gchr.gchr_model import GchrExportConfig class GchrExportFormat(StrEnum): SKR51 = auto() Volkswagen = auto() Opel = auto() GchrExportFn = Callable[[GchrExportConfig], None] EXPORT_FN: dict[GchrExportFormat, GchrExportFn] = { GchrExportFormat.SKR51: export_skr51_xml, GchrExportFormat.Volkswagen: export_volkswagen_xml, } def export_dummy(export_cfg: GchrExportConfig) -> None: print("DUMMY") print(export_cfg.main_site) pass def get_export_fn(export_format: str) -> GchrExportFn: export_format_enum = GchrExportFormat[export_format] return EXPORT_FN.get(export_format_enum, export_dummy)