|
@@ -0,0 +1,31 @@
|
|
|
+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 по ключу"""
|
|
|
+
|
|
|
+ models = storage().data[key]
|
|
|
+
|
|
|
+ return self.export_models(models)
|