The ExtendedConfigParser is an extended Python Config Parser (https://docs.python.org/3/library/configparser.html) and has the same functions and features.
In addition, the ExtendedConfigParser offers the following additional functions, such as standard configuration files in the package and a production configuration.
The ExtendedConfigParser has the possibility to read a standard configuration file from a package. If no package is specified the package, from which the config parser was called is used.
from enhancements.config import ExtendedConfigParser
config = ExtendedConfigParser()
Alternatively, the package
parameter can be used to specify a specific Python package to search for a default configuration file.
Likewise, the parameters productionconfig
and defaultini
can be used to specify alternate configuration
files for the production environment and as default configuration.
Another possibility to specify the production configuration file is to define it in the "default.ini":
[productionconfig] configpath = /etc/appname/production.ini
If the specified file exists, it will be loaded. If this file does not exist, a warning is issued.
The ExtendedConfigParser provides the following methods in addition to all Python Config Parser methods:
With the copy
method an ExtendedConfigParser can be copied to create independent ConfigParser objects.
Auxiliary method for the ModuleParser to load configuration files via command line parameters.
append
can be used as an alternative to read
.
With getlist
it is possible to read a list from a configuration file.
The standard Python config parser does not provide a corresponding method.
The getmodule
method returns a module.
getmodule
can be applied to both a section and an option.
When used as an option, the class name including path can be added directly to the option.
If a module is to be loaded via a section, this section must have the following entries:
It should be noted that getmodule
returns a class and not an instance
The instantiation of the class must be done by the application itself.
Similar to getmodules
, getplugins
can be used to load modules.
However, getplugins
expects a prefix and returns a list of the modules found.