Source code for portformer.config
import os
import portformer as pf
from dotenv import dotenv_values
[docs]def load_dotenv_config(dotenv_path=None, verbose=False, **kwargs):
"""Loads config file at either `dotenv_path`, env var `PF_CONFIG_DOTENV_PATH`
"""
return dotenv_values(dotenv_path=dotenv_path, verbose=verbose, **kwargs)
def get_envvar(prefix="PF_"):
prefix_len = len(prefix)
return {
k[prefix_len:].lower(): v.strip()
for k, v in os.environ.items()
if k.startswith(prefix)
}
def load_config(prefix="PF_"):
print("Loading config")
envvar_settings = get_envvar(prefix=prefix)
verbose = envvar_settings.get("verbose", False)
dotenv_path = envvar_settings.get("config_dotenv_path", None)
settings = load_dotenv_config(dotenv_path=dotenv_path, verbose=verbose)
settings.update(envvar_settings)
return settings