|  | @@ -7,6 +7,7 @@ from src.settings.settings import settings
 | 
	
		
			
				|  |  |  from src.storage.storage import storage
 | 
	
		
			
				|  |  |  from src.validation.validator import validator
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |  #
 | 
	
		
			
				|  |  |  # Класс для обработки начало работы приложения
 | 
	
		
			
				|  |  |  #
 | 
	
	
		
			
				|  | @@ -14,33 +15,29 @@ class start_factory:
 | 
	
		
			
				|  |  |      __options: settings = None
 | 
	
		
			
				|  |  |      __storage: storage = None
 | 
	
		
			
				|  |  |      __vtor = validator()
 | 
	
		
			
				|  |  | -    
 | 
	
		
			
				|  |  | -    def __init__(self, _options: settings,
 | 
	
		
			
				|  |  | -                 _storage: storage = None) -> None:
 | 
	
		
			
				|  |  | -        
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    def __init__(self, _options: settings, _storage: storage = None) -> None:
 | 
	
		
			
				|  |  |          self.__vtor.check_type(_options, settings)
 | 
	
		
			
				|  |  |          self.__vtor.check_type(_storage, storage)
 | 
	
		
			
				|  |  |          self.__options = _options
 | 
	
		
			
				|  |  |          self.__storage = _storage
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -    def __save(self, key:str, items: list):
 | 
	
		
			
				|  |  | +    def __save(self, key: str, items: list):
 | 
	
		
			
				|  |  |          """
 | 
	
		
			
				|  |  |              Сохранить данные
 | 
	
		
			
				|  |  |          Args:
 | 
	
		
			
				|  |  |              key (str): ключ доступ
 | 
	
		
			
				|  |  |              items (list): список
 | 
	
		
			
				|  |  |          """
 | 
	
		
			
				|  |  | -       
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |          self.__vtor.check_type(key, str)
 | 
	
		
			
				|  |  | -        
 | 
	
		
			
				|  |  | -        if self.__storage == None:
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        if self.__storage is None:
 | 
	
		
			
				|  |  |              self.__storage = storage()
 | 
	
		
			
				|  |  | -            
 | 
	
		
			
				|  |  | -        self.__storage.data[ key ] = items
 | 
	
		
			
				|  |  | -        
 | 
	
		
			
				|  |  | -        
 | 
	
		
			
				|  |  | -                
 | 
	
		
			
				|  |  | -    @property            
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        self.__storage.data[key] = items
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    @property
 | 
	
		
			
				|  |  |      def storage(self):
 | 
	
		
			
				|  |  |          """
 | 
	
		
			
				|  |  |               Ссылка на объект хранилище данных
 | 
	
	
		
			
				|  | @@ -48,12 +45,11 @@ class start_factory:
 | 
	
		
			
				|  |  |              _type_: _description_
 | 
	
		
			
				|  |  |          """
 | 
	
		
			
				|  |  |          return self.__storage
 | 
	
		
			
				|  |  | -    
 | 
	
		
			
				|  |  | -    
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |      @staticmethod
 | 
	
		
			
				|  |  |      def create_recipes():
 | 
	
		
			
				|  |  |          """
 | 
	
		
			
				|  |  | -            Фабричный метод Создать список рецептов
 | 
	
		
			
				|  |  | +        Фабричный метод Создать список рецептов
 | 
	
		
			
				|  |  |          """
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |          result = []
 | 
	
	
		
			
				|  | @@ -62,11 +58,24 @@ class start_factory:
 | 
	
		
			
				|  |  |          group = nomenclature_group_model("group")
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |          ingredients = [
 | 
	
		
			
				|  |  | -            ingredient_model("Мука", nomenclature_model("Мука", "Мука пшеничная", g, group), 100, g),
 | 
	
		
			
				|  |  | -            ingredient_model("Сахар", nomenclature_model("Сахар", "Сахарный песок", g, group), 80, g),
 | 
	
		
			
				|  |  | -            ingredient_model("Масло", nomenclature_model("Масло", "Масло сливочное", g, group), 70, g),
 | 
	
		
			
				|  |  | -            ingredient_model("Яйцо", nomenclature_model("Яйцо", "Яйцо куриное", pcs, group), 1, pcs),
 | 
	
		
			
				|  |  | -            ingredient_model("Ванилин", nomenclature_model("Ванилин", "Ванилин продуктовый", g, group), 5, g)
 | 
	
		
			
				|  |  | +            ingredient_model(
 | 
	
		
			
				|  |  | +                "Мука", nomenclature_model("Мука", "Мука пшеничная", g, group), 100, g
 | 
	
		
			
				|  |  | +            ),
 | 
	
		
			
				|  |  | +            ingredient_model(
 | 
	
		
			
				|  |  | +                "Сахар", nomenclature_model("Сахар", "Сахарный песок", g, group), 80, g
 | 
	
		
			
				|  |  | +            ),
 | 
	
		
			
				|  |  | +            ingredient_model(
 | 
	
		
			
				|  |  | +                "Масло", nomenclature_model("Масло", "Масло сливочное", g, group), 70, g
 | 
	
		
			
				|  |  | +            ),
 | 
	
		
			
				|  |  | +            ingredient_model(
 | 
	
		
			
				|  |  | +                "Яйцо", nomenclature_model("Яйцо", "Яйцо куриное", pcs, group), 1, pcs
 | 
	
		
			
				|  |  | +            ),
 | 
	
		
			
				|  |  | +            ingredient_model(
 | 
	
		
			
				|  |  | +                "Ванилин",
 | 
	
		
			
				|  |  | +                nomenclature_model("Ванилин", "Ванилин продуктовый", g, group),
 | 
	
		
			
				|  |  | +                5,
 | 
	
		
			
				|  |  | +                g,
 | 
	
		
			
				|  |  | +            ),
 | 
	
		
			
				|  |  |          ]
 | 
	
		
			
				|  |  |          steps = [
 | 
	
		
			
				|  |  |              "Как испечь вафли хрустящие в вафельнице? Подготовьте необходимые продукты. Из данного количества у меня получилось 8 штук диаметром около 10 см.",
 | 
	
	
		
			
				|  | @@ -76,14 +85,15 @@ class start_factory:
 | 
	
		
			
				|  |  |              "Всыпьте муку, добавьте ванилин.",
 | 
	
		
			
				|  |  |              "Перемешайте массу венчиком до состояния гладкого однородного теста.",
 | 
	
		
			
				|  |  |              "Разогрейте вафельницу по инструкции к ней. У меня очень старая, еще советских времен электровафельница. Она может и не очень красивая, но печет замечательно! Я не смазываю вафельницу маслом, в тесте достаточно жира, да и к ней уже давно ничего не прилипает. Но вы смотрите по своей модели. Выкладывайте тесто по столовой ложке. Можно класть немного меньше теста, тогда вафли будут меньше и их получится больше.",
 | 
	
		
			
				|  |  | -            "Пеките вафли несколько минут до золотистого цвета. Осторожно откройте вафельницу, она очень горячая! Снимите вафлю лопаткой. Горячая она очень мягкая, как блинчик. Но по мере остывания становится твердой и хрустящей. Такие вафли можно свернуть трубочкой. Но делать это надо сразу же после выпекания, пока она мягкая и горячая, потом у вас ничего не получится, вафля поломается. Приятного аппетита!"
 | 
	
		
			
				|  |  | +            "Пеките вафли несколько минут до золотистого цвета. Осторожно откройте вафельницу, она очень горячая! Снимите вафлю лопаткой. Горячая она очень мягкая, как блинчик. Но по мере остывания становится твердой и хрустящей. Такие вафли можно свернуть трубочкой. Но делать это надо сразу же после выпекания, пока она мягкая и горячая, потом у вас ничего не получится, вафля поломается. Приятного аппетита!",
 | 
	
		
			
				|  |  |          ]
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -        result.append(recipe_model.create("Вафли хрустящие в вафельнице", ingredients, steps))
 | 
	
		
			
				|  |  | +        result.append(
 | 
	
		
			
				|  |  | +            recipe_model.create("Вафли хрустящие в вафельнице", ingredients, steps)
 | 
	
		
			
				|  |  | +        )
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |          return result
 | 
	
		
			
				|  |  | -    
 | 
	
		
			
				|  |  | -    
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |      def create(self):
 | 
	
		
			
				|  |  |          """
 | 
	
		
			
				|  |  |             В зависимости от настроек, сформировать начальную номенклатуру
 | 
	
	
		
			
				|  | @@ -91,11 +101,11 @@ class start_factory:
 | 
	
		
			
				|  |  |          Returns:
 | 
	
		
			
				|  |  |              _type_: _description_
 | 
	
		
			
				|  |  |          """
 | 
	
		
			
				|  |  | -        
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |          result = []
 | 
	
		
			
				|  |  | -        if self.__options.is_first_run == True:
 | 
	
		
			
				|  |  | +        if self.__options.is_first_run:
 | 
	
		
			
				|  |  |              self.__options.is_first_run = False
 | 
	
		
			
				|  |  | -            
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |              # Формируем и зпоминаем номеклатуру
 | 
	
		
			
				|  |  |              res = self.create_recipes()
 | 
	
		
			
				|  |  |              ingredients = set()
 | 
	
	
		
			
				|  | @@ -109,7 +119,7 @@ class start_factory:
 | 
	
		
			
				|  |  |              result = nomenclatures
 | 
	
		
			
				|  |  |              munits = set([x.measurement_unit for x in nomenclatures])
 | 
	
		
			
				|  |  |              nomgroups = set([x.nomenclature_group for x in nomenclatures])
 | 
	
		
			
				|  |  | -            self.__save(storage.nomenclature_key(), nomenclatures )
 | 
	
		
			
				|  |  | +            self.__save(storage.nomenclature_key(), nomenclatures)
 | 
	
		
			
				|  |  |              self.__save(storage.measurement_unit_key(), munits)
 | 
	
		
			
				|  |  |              self.__save(storage.nomenclature_group_key(), nomgroups)
 | 
	
		
			
				|  |  |              self.__save(storage.ingredient_key(), ingredients)
 |