Usage¶
You can import and use prettyconf in your Python code:
from prettyconf import config
MY_CONFIG = config("PROJECT_MY_CONFIG")
If PROJECT_MY_CONFIG is not defined in an environment variable neither in a
.env (or *.cfg) file, prettyconf will raise a
UnknownConfiguration exception.
Warning
prettyconf will skip configuration files inside .zip,
.egg or wheel packages.
In these cases you could define a default configuration value:
MY_CONFIG = config("PROJECT_MY_CONFIG", default="default value")
You can also use the cast argument to convert a string value into
a specific value type:
DEBUG = config("DEBUG", default=False, cast=config.boolean)
The boolean cast converts strings values like On|Off, 1|0,
yes|no, true|False into Python boolean True or False.
See also
Find out more about other casts or how to write your own at Casts.
Configuration files discovery¶
By default library will use the directory of the file where config() was
called as the start directory to look for configuration files. Consider the
following file structure:
project/
settings.ini
app/
settings.py
If you call config() from project/app/settings.py the library will
start looking for configuration files at project/app until it finds
.env|*.ini|*.cfg files.
See also
This behavior is described more deeply on the
RecursiveSearch loader.
Loaders will help you customize how configuration
discovery works. Find out more at Customizing the configuration discovery.