import inspect import waifuc.export from .config_manager import ConfigManager class ExporterManager: def __init__(self, config_manager: ConfigManager): self.config_manager = config_manager self.exporter_classes = [ cls for name, cls in inspect.getmembers(waifuc.export, inspect.isclass) if name.endswith("Exporter") and not inspect.isabstract(cls) ] self.exporter_names = [cls.__name__ for cls in self.exporter_classes] def instantiate_exporter(self, selected_exporter, dataset_name): exporter_cls = next(cls for cls in self.exporter_classes if cls.__name__ == selected_exporter) output_dir = self.config_manager.get_config("output_dir") return exporter_cls(dataset_name, path=output_dir)