PKonfig Concepts and Glossary¶
Config
Base class you subclass to declare configuration. Contains field descriptors and optional nested Configs.
Field
Descriptor that defines type, default, and validation. Examples:
Str,Int,Bool,Choice,ListField,LogLevel.
Storage
Source of values. Implementations flatten keys into tuples, e.g.,
("db", "host"). Built-ins:Env,DotEnv,SecretFile,Yaml,Json,Toml,Ini, plusDictStoragefor in-memory values.
Precedence
Storages are checked left-to-right. The first storage holding a key wins.
Aliases
Namespaces for nested Configs so you can have
APP_DB_HOSTmap tocfg.db.host.
Validation
Fields cast and validate values. Missing required values or failed casts raise clear exceptions.
Fail-fast
By default, PKonfig validates at construction (
fail_fast=True). Setfail_fast=Falseto defer, and callcfg.check()later.
Type annotations
PKonfig embraces Python type hints for clean, dev-friendly configs. Always annotate your fields (e.g., host: str). Field descriptors still provide runtime casting/validation.
Example putting it together
from pkonfig.config import Config from pkonfig import storage class DB(Config): host: str port: int class App(Config): debug = False db: DB cfg = App(storage.Env(prefix="APP"))
See also
Quickstart for minimal setup
Tutorials for deep dives
API for full reference