Загружаем изображение…

Работа с приоритетами конфигураций!



ChainMap позволяет работать с несколькими словарями как с одним логическим конфигом, без слияния и копирования данных.

Поиск ключа идёт слева направо, первый найденный побеждает:
cfg["timeout"] # берётся из env_cfg, если есть
cfg["retries"] # иначе из file_cfg

Это пригодится, например, в таком сценарии: env, файл, дефолты.
cfg.maps[0]["timeout"] = 5

Запись идёт только в верхний слой, остальные словари остаются неизменными. Отлично подойдет для фич-флагов:
cfg.new_child(cli_cfg)

Можно динамически добавлять новый слой (аргументы CLI поверх всего остального).

ChainMap есть в stdlib и это хороший способ работать с конфигами, приоритетами и override-логикой.

Python Ready | #совет
Просмотры: 246
Открыть в MAX Сообщить о неточности

Репосты публикации

Публикация канала

Сообщить о неточности

Опишите, что нужно исправить. Если есть источник, добавьте ссылку.

Вы покидаете datool.ru

Ссылка ведёт на внешний сайт. datool.ru не отвечает за его содержимое — проверьте адрес, прежде чем вводить пароли или платёжные данные.

Переход через 10 с

Перейти