reagento/dature
LibraryLive in productionDocumentation | Changelog
No GitHub topics on this repo.
- Python100.0%
2 Reviews
dature is a polished Python configuration library with a clear niche: loading strongly typed dataclass-based config from many real-world sources without making users give up standard library dataclasses. The README gets the core value across quickly, and the API feels approachable: dature.load(dature.Yaml12Source(...), Config) is easy to understand, while the project still covers serious production concerns like source merging, Annotated validators, secret masking, environment expansion, debug reports, Docker secrets, CLI args, and Vault support. I also like that optional dependencies are split by format, so users do not have to install YAML, TOML, Vault, or secret-detection packages unless they need them.
The repository looks thoughtfully maintained. It has a conventional src/dature layout, a substantial tests tree covering loaders, sources, merging, masking, validation, errors, CLI behavior, examples, and integrations, plus CI across Python 3.12, 3.13, and 3.14 on Linux, Windows, and macOS. The release setup is also stronger than many young Python packages: PyPI publishing uses GitHub Actions, the project has Read the Docs documentation, a changelog process via towncrier, CodeQL/dependency-review badges, Apache-2.0 licensing, and a security reporting policy. For a package with only 23 stars and 1 fork, the engineering maturity is noticeably ahead of its community footprint.
The main adoption gap is not the implementation, but positioning and examples. The docs explain the feature set well, but dature is entering a crowded space near Pydantic Settings, Dynaconf, environs, and hand-rolled dataclass loaders. The existing comparison section is a good start, but I would make the “why choose this” story more prominent in the README: standard dataclasses, explicit source objects, strong error reporting, and typed decorator mode seem like the differentiators. A few end-to-end examples would also help: one “12-factor app” example using env vars plus defaults, one Docker secrets example, and one multi-source production config example with conflict strategy and masked debug output. The open issues show a roadmap around remote sources such as Consul, etcd, AWS, Azure, Google Cloud, and Zookeeper, which makes sense, but benchmarks against similar libraries would probably be the highest-leverage issue to close first because it would help users judge performance and scope before adopting.
Overall, dature feels like a serious, carefully built configuration tool rather than a quick wrapper around parsing libraries. The test matrix, typed package marker, mypy plugin, security handling, and docs all signal that the maintainer is thinking about real package consumers. I would mostly focus future effort on adoption material: sharper comparisons, richer examples, and perhaps a “stability guarantees while beta” note for users deciding whether to introduce it into production code.
dature is a strong, focused Python configuration library with a clear purpose: loading typed configuration into dataclasses from files, environment variables, Docker secrets, CLI args, and remote sources like Vault. Its best feature is not just format support, but failure UX: readable errors, source locations, validation, debug reports, and secret masking. The project also shows good engineering discipline with strict typing, Ruff, mypy, tests, examples, docs, CI across Python/OS versions, pinned GitHub Actions, PyPI trusted publishing, and build provenance attestations.
The main weakness is trust surface polish. The public stable documentation appears out of sync with the current API in some merging examples, which could cause copy-paste failures for new users. The package also installs a global sys.excepthook on import, which feels too invasive and should be opt-in. Security reporting exists, but the SECURITY.md is minimal and should define supported versions, scope, and response expectations.
Overall: very promising and technically serious. Beta-level maturity, but with enough architecture and safety thinking to be worth watching or contributing to.
