1
1

exporter.py 1.2 KB

1234567891011121314151617181920212223242526272829303132333435
  1. from src.models.abstract_reference import abstract_reference
  2. from src.export.strategies.export import export
  3. from src.validation.validator import validator
  4. from src.storage.storage import storage
  5. class exporter:
  6. """Класс для экспорта данных моделей"""
  7. # Валидатор
  8. __vtor = validator()
  9. def __init__(self, strategy: export):
  10. self.__vtor.check_type(strategy, export)
  11. self.__strat = strategy
  12. def export_models(self, models: list[abstract_reference]) -> str:
  13. """Экспортировать модели"""
  14. self.__vtor.check_collection_types_all(models, abstract_reference)
  15. res = self.__strat.export_header(models[0])
  16. for model in models:
  17. res += f"\n{self.__strat.export_model(model)}"
  18. return res
  19. def export_by_key(self, key):
  20. """Экспортировать модели из storage по ключу"""
  21. # Проверяем чтобы ключ был строкой с длиной >0
  22. self.__vtor.check_type(key, str)
  23. self.__vtor.check_length_greater(key, 0)
  24. models = storage().data[key]
  25. return self.export_models(models)