simputils-config is a tiny library that simplifies working with configs and params. Especially useful for collecting config values from different sources and using the resulting "dict-like" object for different (unlimited) purposes. Additionally allows integration with pydantic framework and as sources any file-type (If the handler for this file-type is implemented, custom or not).
Helps with improving overall architecture of an application (architecture quality and customization was the main objectives of the project)
Simplifies and reduces amount of effort in using configs
Tracking history of applied values
Aggregating values from different sources
Merging configs with different strategies (extensible)
Improved integration with IDEs auto-completion feature
Config can be used in "object/dot-notation" way (with a proper description of the config), IDEs would provide autocomplete for field names
Resulting config behaves as a standard python dict data-type
Seamless Integration with:
Standard python argparser
Out of the box support of file-types: yml, env, json (custom handlers for other file-types can be added)
System env-vars os.environ
pydantic
All the features are implemented with development effort reduction and generic architecture in mind, that makes this project awesome.
What's the difference between this Python project and similar ones?
Most of the projects related to "configs" either too complicated to use, or missing features, besides bloating and damaging the overall architecture of a project (IMHO).
--
Anyone who agrees with this pull request could submit an Approve review to it.
P.S. I'm the owner of the project, and I understand that this can cause this PR to be rejected, but I really think that this project can be beneficial to developers.
🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.
## 📋 Pull Request Information
**Original PR:** https://github.com/vinta/awesome-python/pull/2619
**Author:** [@PandaHugMonster](https://github.com/PandaHugMonster)
**Created:** 10/9/2024
**Status:** ❌ Closed
**Base:** `master` ← **Head:** `master`
---
### 📝 Commits (1)
- [`90a48ff`](https://github.com/vinta/awesome-python/commit/90a48ffc5c2225024c102061f07e9a849052669e) Add simputils-config
### 📊 Changes
**1 file changed** (+1 additions, -0 deletions)
<details>
<summary>View changed files</summary>
📝 `README.md` (+1 -0)
</details>
### 📄 Description
## What is this Python project?
`simputils-config` is a tiny library that simplifies working with configs and params. Especially useful for collecting config values from different sources and using the resulting "dict-like" object for different (unlimited) purposes. Additionally allows integration with `pydantic` framework and as sources any file-type (If the handler for this file-type is implemented, custom or not).
- Helps with improving overall architecture of an application (architecture quality and customization was the main objectives of the project)
- Simplifies and reduces amount of effort in using configs
- Tracking history of applied values
- Aggregating values from different sources
- Merging configs with different strategies (extensible)
- Improved integration with IDEs auto-completion feature
- Config can be used in "object/dot-notation" way (with a proper description of the config), IDEs would provide autocomplete for field names
- Enum config definitions (with defaults, data-types casting, etc.)
- Filtering and pre-processing features
- Resulting config behaves as a standard python `dict` data-type
- Seamless Integration with:
- Standard python `argparser`
- Out of the box support of file-types: `yml`, `env`, `json` (custom handlers for other file-types can be added)
- System env-vars `os.environ`
- `pydantic`
All the features are implemented with development effort reduction and generic architecture in mind, that makes this project **awesome**.
## What's the difference between this Python project and similar ones?
Most of the projects related to "configs" either too complicated to use, or missing features, besides bloating and damaging the overall architecture of a project (**IMHO**).
--
Anyone who agrees with this pull request could submit an *Approve* review to it.
P.S. I'm the owner of the project, and I understand that this can cause this PR to be rejected, but I really think that this project can be beneficial to developers.
---
<sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
📋 Pull Request Information
Original PR: https://github.com/vinta/awesome-python/pull/2619
Author: @PandaHugMonster
Created: 10/9/2024
Status: ❌ Closed
Base:
master← Head:master📝 Commits (1)
90a48ffAdd simputils-config📊 Changes
1 file changed (+1 additions, -0 deletions)
View changed files
📝
README.md(+1 -0)📄 Description
What is this Python project?
simputils-configis a tiny library that simplifies working with configs and params. Especially useful for collecting config values from different sources and using the resulting "dict-like" object for different (unlimited) purposes. Additionally allows integration withpydanticframework and as sources any file-type (If the handler for this file-type is implemented, custom or not).dictdata-typeargparseryml,env,json(custom handlers for other file-types can be added)os.environpydanticAll the features are implemented with development effort reduction and generic architecture in mind, that makes this project awesome.
What's the difference between this Python project and similar ones?
Most of the projects related to "configs" either too complicated to use, or missing features, besides bloating and damaging the overall architecture of a project (IMHO).
--
Anyone who agrees with this pull request could submit an Approve review to it.
P.S. I'm the owner of the project, and I understand that this can cause this PR to be rejected, but I really think that this project can be beneficial to developers.
🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.