мета-данные страницы
Общее
В качестве формата конфигурационных файлов принят toml. Разбор конфигурации построен на 2-х объектах:
ConfigFile- обрабатывает файл целиком и предоставляет интерфейс работы с конфигурацией.ConfigFileContent- обрабатывает секции файла, давая интерфейс доступа к элементам конфигурации.
get_value()
Получить значение параметра из файла.
obj.get_value(name, [val_type], [default], [mandatory])
Возвращает: Значение параметра, приведённое к заданному типу.
| Параметр | Тип параметра | Значение по умолчанию | Описание |
|---|---|---|---|
name | str | – | Имя параметра, каким оно задано в файле конфигурации |
val_type | Тип аргумента | str | Тип значения. Может быть любым идентификатором типа python, через которое можно вызвать преобразование в данный тип ( type(param)) либо адаптер типа данной библиотеки |
default | Any | None | Значение по умолчанию для параметра. Тип его не проверяется на соответствие заданному в параметрах. |
mandatory | bool | True | Является ли значение обязательным? Если да, то при отсутствии значения по умолчанию и самого значения в файле, будет возбуждено исключение. В противном случае метод тихо вернёт None |
Пример использования дан выше.
get_section()
Погрузиться на уровень ниже по словарю конфигурации.
Это позволяет выполнить чтение подуровней конфигурационного файла относительно текущего.
obj.get_section(name, [mandatory])
Возвращает: Объект ConfigFileContent содержимого нижележашего уровня.
| Параметр | Тип | Описание |
|---|---|---|
name | str | Имя секции, как оно задано в файле |
mandatory | bool | Является ли секция обязательной. Если да, и она отсутствует, то возбуждается исключение ConfigSectionNotFound. В противном случае возвращается пустая секция, не содержащая параметров. По умолчанию True |
Для работы с секциями можно применять менеджер контекста. Например для файла с содержимым:
[section] param1 = "value1"
Можно применить следующий код:
with ConfigFile('/etc/application.conf') as root_section: with root_section.get_section('section') as section_section: param1 = section_section.get_value('parma1')
get_list_section()
Подобен get_section(), но ожидает увидеть либо словарь, либо список словарей.
obj.get_list_section(name, [mandatory])
Возвращает: Массив объектов ConfigFileContent содержимого нижележащего уровня.
| Параметр | Тип | Описание |
|---|---|---|
name | str | Имя секции, как оно задано в файле |
mandatory | bool | Является ли секция обязательной. Если да, и она отсутствует, то возбуждается исключение ConfigSectionNotFound. В противном случае возвращается пустая секция, не содержащая параметров. По умолчанию True |
Для работы с секциями можно применять менеджер контекста. Например для файла с содержимым:
[[section]] param = "value1" [[section]] param = "value2"
Можно применить следующий код:
with ConfigFile('/etc/application.conf') as root_section: with root_sectin.get_list_section('section') as section_section: conf_ar = [] for el in net_section: conf_ar.append(dict( param1 = el.get_value('parma1') ))
get_section_by_path()
Подобен get_section(), но позволяет пройти по иерархии дальше чем на один уровень. Каждый уровень указывается отдельным параметром
obj.get_section_by_path(name, ..., [mandatory=False])
Возвращает: Объект ConfigFileContent содержимого нижележашего уровня.
| Параметр | Тип | Описание |
|---|---|---|
name | str | Имя секции, как оно задано в файле. Параметр можно задавать несколько раз |
mandatory | bool | Является ли секция обязательной. Если да, и она отсутствует, то возбуждается исключение ConfigSectionNotFound. В противном случае возвращается пустая секция, не содержащая параметров. По умолчанию True. Задаётся ТОЛЬКО в формате ключ-значение |
Для работы с секциями можно применять менеджер контекста. Например для файла с содержимым:
[section.section2] param1 = "value1"
Можно применить следующий код:
with ConfigFile('/etc/application.conf') as root_section: with root_section.get_section_by_path('section', 'section2') as section_section: param1 = section_section.get_value('parma1')