Python Glossary English

Python 3.2+configparserпонятие

configparser.Interpolation

интерполяция

Базовый класс интерполяции, который ничего не подставляет. От него наследуют свою схему подстановок в значения конфига.

Синтаксис

class My(configparser.Interpolation):
    def before_get(self, parser, section, option, value, defaults): ...

ConfigParser(interpolation=None) внутри использует именно его, так что это тот же режим «значения как есть». Свою схему пишут, переопределяя before_get (при чтении значения) и, при желании, before_set. Передавать нужно экземпляр: класс без скобок даёт TypeError уже в конструкторе парсера.

Примеры

import configparser
class Home(configparser.Interpolation):
    def before_get(self, parser, section, option, value, defaults):
        return value.replace("~", "/home/user")
cfg = configparser.ConfigParser(interpolation=Home())
cfg.read_string("[paths]\ndata = ~/data\n")
print(cfg.get("paths", "data"))  # → /home/user/data
import configparser
try:
    configparser.ConfigParser(interpolation=configparser.Interpolation)
except TypeError:
    print("TypeError: нужен экземпляр")  # → TypeError: нужен экземпляр

См. также

Открыть в полном глоссарииdocs.python.orgСообщить о неточности