1234567891011121314151617181920212223242526272829303132333435 |
- 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)
|