Файл конфигурации состоит из разделов, каждый из которых возглавляется заголовком [section]
, за которым следуют записи key/value
, разделенные определенным символом. Это может быть символ '='
или ':'
по умолчанию.
По умолчанию имена разделов [section]
чувствительны к регистру, но ключи key
не чувствительны и всегда преобразовываются к нижнему регистру. Начальные и конечные пробелы удаляются из ключей key
и значений value
. Значения могут быть опущены, в этом случае разделитель ключ/значение также может быть пропущен.
Значения value
также могут занимать несколько строк, если они имеют отступ глубже, чем первая строка значения. В зависимости от режима анализатора, пустые строки могут рассматриваться как части многострочных значений или игнорироваться.
Файлы конфигурации могут содержать комментарии с префиксом определенных символов, это '#'
и ';'
- по умолчанию. Комментарии могут появляться самостоятельно в пустой строке, возможно с отступом.
Примеры записей ключей и значений в секции:
[Section] key=value spaces in keys=allowed spaces in values=allowed as well spaces around the delimiter = obviously you can also use : to delimit keys from values
Все значения являются строками:
[Section] values like this: 1000000 or this: 3.14159265359 are they treated as numbers? : no integers, floats and booleans are held as: strings can use the API to get converted values directly: true
Многострочные значения:
[Section] chorus: I'm a lumberjack, and I'm okay I sleep all night and I work all day
Нет значений:
[Section] key_without_value empty string value here =
Можно использовать комментарии:
[Section] # like this ; or this # By default only in an empty line. # Inline comments can be harmful because they prevent users # from using the delimiting characters as parts of values. # That being said, this can be customized.
Разделы могут быть с отступом:
[SectionOne] key_without_value empty string value here = [SectionTwo] can_values_be_as_well = True does_that_mean_anything_special = False purpose = formatting for readability multiline_values = are handled just fine as long as they are indented deeper than the first line of a value # Did I mention we can indent comments, too?