python-configuration

Python configuration management via environment variables and typed settings. Use when externalizing config, setting up pydantic-settings, managing secrets, or implementing environment-specific behavior.

By wshobson · 10,195 installs

npx skills add wshobson/agents --skill python-configuration

Source repository · Upstream listing

Python Configuration Management Externalize configuration from code using environment variables and typed settings. Well managed configuration enables the same code to run in any environment without modification. When to Use This Skill Setting up a new project's configuration system Migrating from hardcoded values to environment variables Implementing pydantic settings for typed configuration Managing secrets and sensitive values Creating environment specific settings (dev/staging/prod) Validating configuration at application startup Core Concepts 1. Externalized Configuration All environment specific values (URLs, secrets, feature flags) come from environment variables, not code. 2. Typed Settings Parse and validate configuration into typed objects at startup, not scattered throughout code. 3. Fail Fast Validate all required configuration at application boot. Missing config should crash immediately with a clear message. 4. Sensible Defaults Provide reasonable defaults for local development while requiring explicit values for sensitive settings. Quick Start Fundamental Patterns Pattern 1: Typed Settings with Pydantic Create a central settings class that loads and validates all configuration. Import settings throughout your application: Pattern 2: Fail Fast on Missing Configuration Required settings should crash the application immediately with a clear error. A clear error at startup is better than a cryptic None failure mid request. Pattern 3: Local Development Defaults Provide sensible defaults for local development while requiring explicit values for secrets. Create a .env file for local development (never commit this): Pattern 4: Namespaced Environment Variables Prefix related variables for clarity and easy debugging. Makes env grep DB useful for debugging. Detailed worked examples and patterns Detailed sections (starting with Advanced Patterns ) live in references/details.md . Read that file when the navigation summary above is insufficient. Best Practices Summary 1. Never hardcode config All environment specific values from env vars 2. Use typed settings Pydantic settings with validation 3. Fail fast Crash on missing required config at startup 4. Provide dev defaults Make local development easy 5. Never commit secrets Use .env files (gitignored) or secret managers 6. Namespace variables DB HOST , REDIS URL for clarity 7. Import settings singleton Don't call os.getenv() throughout code 8. Document all variables README should list required env vars 9. Validate early Check config correctness at boot time 10. Use secrets dir Support mounted secrets in containers