from src.models.abstract_reference import abstract_reference from src.export.strategies.export import export from src.validation.validator import validator from src.storage.storage import storage class exporter: """Класс для экспорта данных моделей""" # Валидатор __vtor = validator() def __init__(self, strategy: export): self.__vtor.check_type(strategy, export) self.__strat = strategy def export_models(self, models: list[abstract_reference]) -> str: """Экспортировать модели""" self.__vtor.check_collection_types_all(models, abstract_reference) res = self.__strat.export_header(models[0]) for model in models: res += f"\n{self.__strat.export_model(model)}" return res def export_by_key(self, key): """Экспортировать модели из storage по ключу""" # Проверяем чтобы ключ был строкой с длиной >0 self.__vtor.check_type(key, str) self.__vtor.check_length_greater(key, 0) models = storage().data[key] return self.export_models(models)