Goodconf
goodconf is a thin wrapper over Pydantic's settings management. Allows you to define configuration variables and load them from environment or JSON/YAML file. Also generates initial configuration files and documentation for your defined configuration.
Installation⚑
pip install goodconf
or pip install goodconf[yaml]
if parsing/generating YAML files is required.
Basic Usage⚑
Define the configuration object in config.py
:
import base64
import os
from goodconf import GoodConf, Field
from pydantic import PostgresDsn
class AppConfig(GoodConf):
"""Configure my application."""
DEBUG: bool
DATABASE_URL: PostgresDsn = "postgres://localhost:5432/mydb"
SECRET_KEY: str = Field(
initial=lambda: base64.b64encode(os.urandom(60)).decode(),
description="Used for cryptographic signing. "
"https://docs.djangoproject.com/en/2.0/ref/settings/#secret-key")
class Config:
default_files = ["/etc/myproject/myproject.yaml", "myproject.yaml"]
config = AppConfig()
To load the configuration use config.load()
.
Remember that environment variables always take precedence over variables in the configuration files.
For more details see Pydantic's docs for examples of loading:
References⚑
Last update: 2021-12-03