Skip to main content

Easy application configuration with yaml files

Project description

easyconfig

Tests Status Updates PyPI - Python Version PyPI Downloads

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 .yml file 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.

Expansion

It's possible to use environment variable or files for expansion. Easyconfig will load all values

Changelog

0.4.2 (2025-11-03)

  • Fixed an issue for the in_file parameter when using easyconfig.Field

0.4.1 (2025-04-01)

  • added easyconfig.Field to have proper type hint for the in_file parameter

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 AppBaseModel and BaseModel
  • 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

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

easyconfig-0.4.2.tar.gz (24.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

easyconfig-0.4.2-py3-none-any.whl (30.9 kB view details)

Uploaded Python 3

File details

Details for the file easyconfig-0.4.2.tar.gz.

File metadata

  • Download URL: easyconfig-0.4.2.tar.gz
  • Upload date:
  • Size: 24.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for easyconfig-0.4.2.tar.gz
Algorithm Hash digest
SHA256 1c7fabef70b3881f5d32255a3241b3321ecdd321004edba990747f3972d61428
MD5 0eede463d51b25c85dee27cbb70afb74
BLAKE2b-256 0cc5ef84c37913fcc204f580431933f338cf33f299f5f603116f29838f4fb452

See more details on using hashes here.

Provenance

The following attestation bundles were made for easyconfig-0.4.2.tar.gz:

Publisher: publish-pypi.yml on spacemanspiff2007/easyconfig

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file easyconfig-0.4.2-py3-none-any.whl.

File metadata

  • Download URL: easyconfig-0.4.2-py3-none-any.whl
  • Upload date:
  • Size: 30.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for easyconfig-0.4.2-py3-none-any.whl
Algorithm Hash digest
SHA256 3749e78218d8bbc987ca36f7d07869a72e9dee0dd10c1377a09c2796f0df50f4
MD5 e6679ee0ca838841f8af2894e157cc29
BLAKE2b-256 9de0e46e70aefe109fbad740462bd5ea024d7e1b2f104e90b088c7c4630de31f

See more details on using hashes here.

Provenance

The following attestation bundles were made for easyconfig-0.4.2-py3-none-any.whl:

Publisher: publish-pypi.yml on spacemanspiff2007/easyconfig

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page