Release Notes¶
1.3.0¶
Release date: 2026-04-18
Added¶
Registry[T]— tag-to-factory container.registry.build("silu")returns an instance;registry.get("silu")returns the registered class itself (for APIs that taketype[T]). Decorator registration via@registry("key").- Long-form specs with kwargs —
registry.build({"type": "leaky_relu", "negative_slope": 0.1})constructsLeakyReLU(negative_slope=0.1). Build(registry)marker fortyping.Annotated— declareactivation: Annotated[nn.Module, Build(activations)] = "silu"in a schema andvalidate()resolves the config string into an instance before type-checking. Works the same across JSON/TOML/YAML sources, on explicit values and defaults alike.docs/registry.mdguide covering short vs. long form, build vs. get, andvalidate()integration.
Changed¶
validate()now callsget_type_hints(..., include_extras=True)soAnnotatedmetadata is visible to the newBuildmarker. No impact on existing schemas.
Breaking changes¶
None.
1.0.0¶
Release date: 2026-04-12
First stable release.
What's included¶
Configwith attribute access, dotted-path access, freeze, snapshot, rollback, and change callbacksConfigLoaderandProfileLoaderwith source metadata tracking viaConfig.meta()DictSource,JsonFileSource,TomlFileSource,EnvSource,CliSource- Automatic scalar and JSON-like coercion for
EnvSourceandCliSource(disable withcoerce=False) merge()withDEEP_MERGE,OVERRIDE, andAPPENDstrategies — all paths return isolated copies- Recursive schema validation with defaults, strict mode, and built-in constraints (
Range,Length,Pattern,OneOf) ThreadSafeConfigwith shared lock support;FileLockfor cross-process coordinationinterpolate()with${path.to.key}and${env:VAR}resolution and circular-reference detection
Breaking changes¶
None — this is the initial stable release.