Current project state:
⭐ Supports **Python 3.8 or above**,
⭐ Is **fully typed**,
⭐ Supports **YAML, JSON, TOML, INI, XML, ConfigObj, BSON, CBOR, Amazon Ion, properties** and **shellvars**,
⭐ Supports **reading and writing configuration files**, fully or partially, with the ability to preserve the original file structure (without comments),
⭐ Supports **configuration preprocessing** (extending, including and copying configuration files without the need to change the code),
⭐ Supports **variable interpolation** (runtime value substitution),
⭐ Supports **modular configuration with type validation** (wrapping runtime Python modules in-place and outside them),
⭐ Supports **synchronous and asynchronous file operations**,
⭐ Supports loading configuration from **environment variables and secret files**.
While being built on top of [pydantic](https://docs.pydantic.dev/1.10/), _configzen_ inherits most of its features, including [data validation](https://docs.pydantic.dev/1.10/usage/validators/), [schema generation](https://docs.pydantic.dev/1.10/usage/schema/), [custom data types](https://docs.pydantic.dev/1.10/usage/types/#arbitrary-types-allowed), good integration with [Rich](https://docs.pydantic.dev/1.10/usage/rich/), and more.
Before the 1.0.0 release, migration to [pydantic v2](https://docs.pydantic.dev/2.1) is planned.
In this version:
Added `__author__`, `__copyright__` and `__credits__` variables to `configzen/__init__.py`.
**Full Changelog**: https://github.com/bswck/configzen/compare/v0.7.2