Загружаем изображение…
Работа с приоритетами конфигураций!
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