assumptions
- Dominant language
- Python
- Stars
- 424
- Forks
- 57
- PR merge metrics
- No merged PRs in 30d
Description
### Background
I wrote a configuration library in Python for my employer before discovering Confit. They share many of the same features, but I think there are some things mine does better than Confit. Instead of spawning a new project, I'd like to contribute to Confit, but not without finding a consensus on philosophy, features, and implementation. I'm submitting a few different proposals as separate Github issues.
### Assumptions
I want to start by discussing a few assumptions I used.
1. **A configuration consists of variable bindings.** In each new project, a configuration is born only when some variable holds a magic value (e.g. hostname of external service, port to bind, path to temporary directory, path to credentials). The magic value is moved to the configuration as a default, and the variable's value is loaded from the configuration. There is no need for structure richer than a mapping of names to values.
2. **Each variable has a type.** Equivalently, each variable can be validated.
3. **Each type can be serialized to and deserialized from a string.** Configuration files, environment variables, and command line arguments are just strings. We have to be able to represent values as strings.
Can we adopt these assumptions? Do we have real-world counterexamples that cannot be conveniently expressed with these assumptions in place? I'd like to hear your thoughts.
Contributor guide
No contributing guide indexed for this repository
Assessment
This issue has not been assessed yet.