Configuration is one of the bread and butter topics in programming and is usually perceived as a necessary evil - not as something particularly magical. Let's inject some Python magic into the topic.
For internal systems it is often possible to get away without configuration in the classic sense. Instead, it can be inferred from the environment. There is also usually no need in using a special configuration format. The system is written in Python and the configuration is done in Python.
We will look at core features of the Python language to provide configuration, that presents itself as a collection of simple importable namespaced constants. Ideally they are safe and easy to use, easy to change/extend, and easy to test.
The example projects are self-contained mini-systems including tests. They implement configuration based on the "configuration-without-configuration" idea in growing order of "magicness".