Simple configuration should be simple. Here's example.py
:
import cnfg settings = cnfg.load('.examplerc') print(settings['message'])
Relative paths are awful. Not all systems have /etc
. The only
reasonable place to put configuration is in your home directory.
JSON and YAML are not Python. eval
is not so bad. Here's
.examplerc
:
# It's Python, so you can use comments (and more) {"message": "My custom message."}
Now all of these work, with relative directories as implied:
./example.py python ../example.py cat example/example.py | python
It's up to you, but it's easy, especially if you're keeping all your configuration in a dict:
settings = {"message": "Default message!"} settings.update(cnfg.load('.examplerc'))
It's up to you, but it's easy:
import os some_var = os.getenv("SOME_VAR", "some default value")
What about “from config import settings
,” like confire?
It's up to you, but it's easy. Just make a file called config.py
and define settings
in it.
On a Mac or Linux machine, echo ~
. On Windows, echo
%userprofile%
.
Check out the example.
Yes, it's as simple as possible, and it's useful all over the place and the right level of complexity for a lot of projects.