from src.export.strategies.export import export from src.models.abstract_reference import abstract_reference class csv_export(export): """Класс стратегии для экспорта в CSV""" # Singleton def __new__(cls): if not hasattr(cls, "instance"): cls.instance = super(csv_export, cls).__new__(cls) return cls.instance def export_header(self, model: abstract_reference): """ Создать заголовок экспорта Args: model (abstract_reference): модель, по которой нужно построить заголовок """ return ";".join(super().get_properties(model).keys()) def export_model(self, model: abstract_reference): """ Экспортировать модель Args: model (abstract_reference): модель, строку с которой нужно создать """ properties = super().get_properties(model) res = "" for property in properties.keys(): val = properties[property] res += str(val).replace(";", ",") + ";" return res[:-1]