import pytoml as toml import os def load_env(): """ load environment variables from the environment. If empty, use default values from config.toml.example. :return: config dictionary of dictionaries. """ with open('config.toml.example') as defaultconf: configdict = toml.load(defaultconf) try: configdict['twitter']['consumer_key'] = os.environ['CONSUMER_KEY'] except KeyError: pass try: configdict['twitter']['consumer_secret'] = os.environ['CONSUMER_SECRET'] except KeyError: pass try: configdict['web']['host'] = os.environ['HOST'] except KeyError: pass try: configdict['web']['port'] = os.environ['PORT'] except KeyError: pass try: configdict['web']['contact'] = os.environ['CONTACT'] except KeyError: pass try: configdict['mail']['mbox_user'] = os.environ['MBOX_USER'] except KeyError: pass try: configdict['database']['db_path'] = os.environ['DB_PATH'] except KeyError: pass return configdict # read config in TOML format (https://github.com/toml-lang/toml#toml) try: with open('config.toml') as configfile: config = toml.load(configfile) except FileNotFoundError: config = load_env() if __name__ == "__main__": for category in config: for key in config[category]: print(key + " = " + str(config[category][key]))