easyconfig
Easy application configuration with yaml files
Description
Easyconfig simplifies the configuration management for (small) applications.
Validation and parsing of the configuration file is done through pydantic and easyconfig builds on that. It's possible to use all pydantic features and model features so every exotic use case should be covered. If you have previously worked with pydantic you should feel right at home
Documentation
The documentation can be found at here
Features
- Default
.ymlfile generation - Environment variable expansion
- Support for docker secrets
- Callbacks when values of the configuration change
Why not pydantic settings
A pydantic settings object is a non-mutable object. With easyconfig you can create a global configuration and just import it into your modules. When your application starts you can read the configuration e.g. from a settings file and the object values will change the values accordingly.
Additionally, easyconfig can create a default configuration file with the specified default values and comments of the pydantic models. That way the users can have some guidance how to change the program behaviour.
Environment Variable Expansion
It's possible to use environment variable or files for expansion. Easyconfig will load all values
Changelog
0.4.5 (2026-02-11)
- Fixed an issue with migrations
0.4.4 (2026-02-10)
- Fixed missing convenience classes
0.4.3 (2026-02-10)
- Allow async callbacks
- Changed callback register signature
0.4.2 (2025-11-03)
- Fixed an issue for the
in_fileparameter when usingeasyconfig.Field
0.4.1 (2025-04-01)
- added easyconfig.Field to have proper type hint for the
in_fileparameter
0.4.0 (2024-12-10)
- Minimum required python version is now 3.10
- Added preprocessor to so it's possible to move and deprecate configuration entries
- Added property to get the loaded configuration file
- Many fixes
- Updated CI and code linters
0.3.2 (2024-01-10)
- Updated CI and code linters
0.3.1 (2023-11-10)
- Updated dependencies and code linters
0.3.0 (2023-03-17)
- Breaking: requires pydantic 2.0
- Added support for variable expansion through environment variables and docker secrets
0.2.8 (2023-02-08)
- Fix for StrictBool
0.2.7 (2023-01-09)
- Fixed default generation for data types that inherit from python base types
0.2.6 (2022-12-21)
- Fixed an issue where the default yaml file would not be created properly when using aliases in container
0.2.5 (2022-10-21)
- Marked package as PEP 561 compatible (py.typed)
0.2.4 (2022-04-19)
- Default values get validated, too
0.2.3 (2022-04-08)
- Added extra kwargs check for pydantic fields
- Added option to get generated yaml as a string
0.2.2 (2022-03-31)
- Added convenience base classes
AppBaseModelandBaseModel - Works with private attributes and class functions
- Fixed an issue where multiline comments would not be created properly
- Added an option to exclude entries from config file
0.2.1 (2022-03-25)
- Allow callbacks for file defaults
0.2.0 (2022-03-25)
- Switched to new and more flexible API
- File default and config default are now separated
0.1.2 (2022-03-08)
- Comments get nicely intended
- Fixed an issue with nested data structures
- Allow to specify a different value for file creation
0.1.1 (2022-02-26)
- Fixed an issue with dynamic defaults
- Optional values with default None will not be created in the yaml file
0.1.0 (2022-01-10)
- Updated requirements
0.0.2 (2021-09-16)
- Validate user defaults
- Use json representation of values to get native yaml data types
- Use enum values instead of enum types
0.0.1 (2021-09-14)
- Initial release
Metadata
Release files for easyconfig 0.4.5
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| easyconfig-0.4.5.tar.gz | 25.9 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| easyconfig-0.4.5-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 58.1 kB
Release files / easyconfig-0.4.5.tar.gz
| Download URL | easyconfig-0.4.5.tar.gz |
|---|---|
| Size | 25.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
0f1445ae86fde64a4775938ff620a0f05a9e3c3ecf090bbb1b7b33112067032e
|
|
BLAKE2b-256 checksum How to use checksums |
b75343204fd56691b4b689eb09b8c59cb1ace62059f666818b13da3b4305cdc7
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Feb 11, 2026.
Transparency logRelease files / easyconfig-0.4.5-py3-none-any.whl
| Download URL | easyconfig-0.4.5-py3-none-any.whl |
|---|---|
| Size | 32.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
8c41656e7aa6edf47469b4f15d99a62a60095d14aacebad021bdb46ecff5c066
|
|
BLAKE2b-256 checksum How to use checksums |
b0c7eb6fc10217fb2e4547c5aa9637f96b512f696df0d31d8751d167a61fc6e2
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Feb 11, 2026.
Transparency log