ConfigObj: запретить запись пустых разделов - PullRequest
0 голосов
/ 06 января 2020

Я использую ConfigObj (5.0.6, оба на python 2.7 и python 3.8) для управления своими конфигами, но когда я пишу в файл конфигурации с некоторыми разделами, представленными только в configspe c, они появляются только как пустые разделы, что нежелательно. Буду признателен за любые предложения по исправлению такого поведения ConfigObj.

Минимальный пример того, что происходит:

from configobj import ConfigObj
from validate import Validator

spec = ["[Section]", "option = boolean(default=True)"]

config = ConfigObj(infile={'Section2': {'option2': False}}, configspec=spec)
config.validate(Validator())
print(config)
print(config.write())

Вывод:

{'Section2': {'option2': False}, 'Section': {'option': True}}
['[Section2]', '    option2 = False', '[Section]']

Желаемый вывод (при записи не должно быть пустых разделов):

{'Section2': {'option2': False}, 'Section': {'option': True}}
['[Section2]', '    option2 = False']

Редактировать 1: я использую write () для фактической записи в файл, поэтому я бы предпочел не просто возиться с возвращенным списком строк

...