stdlibx-config

This package provides utilities for loading and managing configuration from multiple sources, such as environment variables, JSON files, YAML files, and custom formats. It allows you to combine loaders and apply validation logic, making configuration flexible, composable, and easy to adapt to different environments.

Installation

pip install stdlibx-config
uv add stdlibx-config
poetry add stdlibx-config
pipenv install stdlibx-config

Example

from dataclasses import dataclass
from typing import Any, Mapping

from stdlibx.config import EnvLoader, JsonLoader, load_config

@dataclass
class Config: ...

def validate_config(_: Mapping[str, Any]) -> Config: ...

config = load_config(
    validate_config,
    [
        JsonLoader("path/to/config.json"),
        EnvLoader(),
    ],
)