Дополнительные параметры передаются в объект KedroContext
через load_context(Path.cwd(), env=env, extra_params=params)
в kedro_cli.py
. Здесь вы можете видеть, что есть функция обратного вызова (защищенная) с именем _split_params
, которая разбивает пары ключ-значение на :
.
Этот _split_params
сначала разбивает строку на запятые (чтобы получить несколько параметров) и затем по двоеточия. Фактически добавление инструкции печати / регистрации того, что передается в extra_params
, покажет вам что-то вроде:
{'train.batch_size': 64, 'train.epochs': 50}
Я думаю, у вас есть пара вариантов:
- Un-вложенность параметры. Таким образом, вы их правильно переопределите.
- Добавление пользовательских logi c в
_split_params
в kedro_cli.py
для создания вложенного словаря на .
символов, который передается в забавный c, упомянутый выше. Я думаю, вы можете повторно использовать множество существующих logi c.
NB: это было протестировано на kedro==0.16.2
.
NB2: способ kedro
разбивает вложенные params использует функции _get_feed_dict
и _add_param_to_feed_dict
в context.py
. В частности, _add_param_to_feed_dict
- это рекурсивная функция, которая распаковывает словарь и форматирует его как "{}.{}".format(key, value)
. ИМО, вы можете использовать лог c отсюда.