Small Standard Library Projects
Config Profile Overlay
configparser can read INI-style text and combine a default section with a selected profile.
Config Profile Overlay
config_profile_overlay.py
import configparser
text = """
[defaults]
host = localhost
port = 8000
debug = false
[dev]
debug = true
port = 8001
[prod]
host = example.com
port = 443
"""
profile =
config = configparser.ConfigParser()
config.read_string(text)
settings = dict(config["defaults"])
settings.update(config[profile])
print("profile=" + profile)
print("host=" + settings["host"])
print("port=" + settings["port"])
print("debug=" + settings["debug"])
import configparser
text = """
[defaults]
host = localhost
port = 8000
debug = false
[dev]
debug = true
port = 8001
[prod]
host = example.com
port = 443
"""
profile =
config = configparser.ConfigParser()
config.read_string(text)
settings = dict(config["defaults"])
settings.update(config[profile])
print("profile=" + profile)
print("host=" + settings["host"])
print("port=" + settings["port"])
print("debug=" + settings["debug"])
config profile
A profile stores named settings that override shared defaults.