weave is a typed Python configuration authoring library for trusted projects.
It composes YAML, overlays, includes, recipes, interpolation, commandless config
args, and _target_ object graphs into audited plain data and optional Python
objects.
The package imports as weave:
from weave import ConfigEntrypoint, compose_config, compose_config_from_args, instantiate- YAML loading with duplicate-key checks and plain-data validation.
- Base configs, overlay files, strict dot-path overrides, and explicit
+adds. - Recursive
_include_composition and_replace_: truemapping replacement. - OmegaConf interpolation with a narrow resolver policy.
- Trusted recipes, recipe catalogs, recipe manifests, and recipe plugin loading.
- Trusted
_target_object graph instantiation with_args_,_partial_, and_inject_. - Redaction, provenance, source maps, composition manifests, source artifacts, raw source snapshot records, and artifact-safe config fingerprints.
- Project-owned adapter helpers through
ConfigEntrypointandcompose_config_from_args(...);weavedoes not own project commands. - Optional selected-object instantiation for explicitly selected trusted config paths.
- Structured config errors with plain-data context payloads.
weave treats authored configs as trusted project code. It is not a workflow
engine, does not execute pipeline stages, and does not provide an untrusted
configuration sandbox.
uv sync --all-groups
make validate-pr
make test-summaryUseful focused targets:
make test
make test-examples
make lint
make typecheck
make buildExamples live in examples/. Tests live in tests/.
Design and roadmap notes live in docs/.