Python 3.5+configparserпонятие
configparser.ConverterMapping
доступ к секциям
Словарь parser.converters: имя → функция преобразования. Добавленный ключ list создаёт методы getlist() у парсера и у всех его секций.
Синтаксис
parser.converters['name'] = func # или ConfigParser(converters={'name': func})
Это законный способ получить из строкового конфига списки, пути или даты, не наследуя парсер. Конвертер получает уже интерполированную строку. Удаление ключа убирает и метод. Встроенные int, float и boolean лежат в том же словаре, поэтому их можно переопределить.
Примеры
import configparser
cfg = configparser.ConfigParser()
cfg.read_string("[app]\nhosts = a, b, c\n")
cfg.converters["list"] = lambda s: [x.strip() for x in s.split(",")]
print(cfg.getlist("app", "hosts")) # → ['a', 'b', 'c']
print(cfg["app"].getlist("hosts")) # → ['a', 'b', 'c']
print(sorted(cfg.converters)) # → ['boolean', 'float', 'int', 'list']
del cfg.converters["list"]
print(hasattr(cfg, "getlist")) # → False
См. также
Открыть в полном глоссарииdocs.python.orgСообщить о неточности