Customizing decu
¶
No two projects are the same, and thus decu
is built with customization
and extensibility in mind. For this purpose, decu
relies heavily on a
configuration file accessible by the user through decu.config
. See the
decu.config
module for more information.
The configuration file¶
The configuration file is a standard .ini
file, usually called
decu.cfg
, and read by the configparser
standard library. It's broken
down into sections pertaining different aspects of the decu
system. decu
provides defaults for all options so no customization is
necessary before using decu
. However, if you want to customize the
system, all you need to do is create a decu.cfg
file in your project's
root directory and override some options. Which options are available and
how to override them is documented in a later section.
How the config file is read¶
There are three configuration files that decu
is aware of. Suppose you
are working on a project located at root_dir
. Then, decu
reads three
different configuration files, in the following order:
- Global: The default
decu.cfg
configuration file that comes with thedecu
installation. Modify this file only if you want your changes to be system-wide. - User-local:
~/.decu.cfg
. Modify this file if you want all your (the user's) projects to see the same changes. - Project-local:
root_dir/decu.cfg
. Modify a single project.
Files read later have precedence, so you can always override the global
options by supplying a decu.cfg
under your root_dir
.
Note: it is not recommended to change options during the development of a
project. It is best to customize decu
before development has started and
to stick to one configuration file for the duration of a project. At the
moment of writing, it is unclear which options are safe to customize during
the course of a project. Thus it is HIGHLY DISCOURAGED to modify the global
configuration file as the changes will take place even in projects that are
already in development. It is best to use project-local configuration files
for each project.
Configuration options¶
Each configuration option is documented in the global configuration file, which we paste here.