мета-данные страницы
Это старая версия документа!
Ресурсы
Разделы
Работа с файлом конфигурации
Конструктор объекта ConfigFile принимает путь к файлу конфигурации. Путь задаётся строкой и может быть относительным.
conf_file = ConfigFile('/etc/application.conf')
Далее объект ConfigFileContent можно получить либо вызвав метод get(), либо, что более предпочтительно, воспользовавшись менеджером контекста:
with ConfigFile(config_file) as root_section: port = root_section.get_value('port', int, 8080)
Особенно хорошо и лаконично получается при использовании хранилища конфигураций:
with ConfigFile('/etc/application.conf') as root_section: add_config(NetConfig, NetConfig( port=root_section.get_value('port', int, 8080), baseurl=root_section.get_value('baseurl', str) ))
Для работы с разделами и подразделами конфигурации можно получать доступ к вложенным словарям:
with ConfigFile('/etc/application.conf') as root_section: with root_sectin.get_section('net') as net_section: add_config(NetConfig, NetConfig( port=net_section.get_value('port', int, 8080), baseurl=net_section.get_value('baseurl', str) ))
Вложенность не ограничивается.
Для работы с списками секций, когда формат конфигурации следующий:
[[net]] name = "a" ip = "192.168.0.0/24" [[net]] name = "b" ip = "192.168.1.0/24"
Используется метод get_list_section()
with ConfigFile('/etc/application.conf') as root_section: conf_ar = [] for net_section in root_sectin.get_list_section('net'): conf_ar.append(NetConfig( name=net_section.get_value('name'), ip=net_section.get_value('ip') )) add_config(NetConfig, conf_ar)
Иной работы объекты класса ConfigFile не делают.
Работа с параметрами конфигурации
Как известно, файлы конфигурации в формате toml легко можно представить в виде словаря Python (либо JSON-объекта). Для работы с одним уровнем данного словаря и создан класс ConfigFileContent. Он даёт API работы с параметрами на данном текущем уровне.