Hans-Peter Jansen wrote: > I would like to use a interpolated section name, e.g.: > > [Section] > secref: %{section}s/whatever > > should result in: > >>>> config['Section']['secref'] > 'Section/whatever' > > Any idea anybody, how to archive this with minimum fuzz?
If you can live with the existing "basic interpolation", i. e. %(...)s, not %{...}s: $ cat config.ini [Foo] secref: %(section)s/whatever [Bar] secref: %(section)s/whatever $ cat demo.py import configparser class Interpolation(configparser.BasicInterpolation): def before_get(self, parser, section, option, value, defaults): defaults = defaults.copy() defaults["section"] = section return super().before_get(parser, section, option, value, defaults) p = configparser.ConfigParser(interpolation=Interpolation()) p.read("config.ini") for section in "Foo", "Bar": print(section, "-->", p[section]["secref"]) $ python3 demo.py Foo --> Foo/whatever Bar --> Bar/whatever $ -- https://mail.python.org/mailman/listinfo/python-list