Skip to content

Cheat Sheet

Declare config schema

from acme_config import AppConfig, ConfigField


class MyConfig(AppConfig):
    model_config = {"env_prefix": "MYAPP_"}

    bucket: str = ConfigField(description="S3 bucket", cli_flag="--bucket")
    debug: bool = ConfigField(default=False, description="Debug mode")

Resolve config (defaults < .env < env vars < CLI < overrides)

from acme_config import build_cli_parser, resolve_config


parser = build_cli_parser(MyConfig)
cli_args = vars(parser.parse_args())
config = resolve_config(MyConfig, cli_args=cli_args)

Feature flags

from acme_config import FeatureFlag, FeatureFlags


class MyFeatures(FeatureFlags):
    model_config = {"env_prefix": "MYAPP_FEATURE_"}

    new_ui: bool = FeatureFlag(default=False, description="Enable new UI")

Generate templates and manifests

from acme_config import generate_dotenv_template, generate_manifest

print(generate_dotenv_template(MyConfig))
print(generate_manifest(MyConfig))