Загрузка файлов конфигурации yaml дваждыPython

Программы на Python
Anonymous
Загрузка файлов конфигурации yaml дважды

Сообщение Anonymous »

Я просматриваю и анализирую код из курса по развертыванию машинного обучения и обнаружил кое-что загадочное. (Этот вопрос не относится к части кода ML)
Конвейер ML использует некоторые значения, которые находятся в файле конфигурации. Этот файл конфигурации представляет собой файл yaml.
Этот файл yaml предоставляется сценариям, которым он нужен, через сценарий с именем core.py.
Структура этой части кода такая

Код: Выделить всё

  regression
|
-----config
|      \----core.py
|
|----config.yml
|
|---train.py
|---predict.py
Например, train.py или Predict.py вызывает значения конфигурации через

Код: Выделить всё

from config.core import config
или иногда из конфигурации импорта reгрессии.config.core
Файл core.py выглядит примерно так

Код: Выделить всё

from pydantic import BaseModel
from strictyaml import YAML

class Config(BaseModel):
value1: str
value2: str

def ParseConfigFile()->YAML:
# Here some code to parse the yaml file

def get_config()-> Config:
parsed_config=ParseConfigFile()
_config = Config(**parsed_config.data)
return _config

config = get_config()
print(f"Config: {config}") #-> Originally it was not here
Когда я запускаю код, я сначала не заметил, но после того, как поместил туда отпечаток, я заметил, что каждый раз, когда скрипт импортирует конфиг, это вызывает get_config() вызывается функция и снова читается yaml.
  • Это обычное явление или обычное? Разве это не дорого, поскольку читается файл yaml? Или есть лучший способ сделать это и загрузить yaml только один раз? Стоит ли вообще затрачивать на это усилий?
И небольшой вопрос
  • Из config.core import config и из reгрессии.config.core import config эквивалент? (кстати, этот проект устанавливается с помощью setup.py и tox)


Подробнее здесь: https://stackoverflow.com/questions/790 ... iles-twice

Вернуться в «Python»