'Returns configuration or default value for option
that contains in section identified by getsection().
Arguments:
- option: name of the option to retrieve;
- default: governs which function we will call.
* When CustomConfigDefault is passed, we will call
the mainfunc.
* When any other value is passed, we will call
the defaultfunc and the value of `default` will
be passed as the third argument to this function.
- defaultfunc and mainfunc: processing helpers.
- args: additional trailing arguments that will be passed
to all processing helpers.'

def _confighelper_runner(self, option, default, defaultfunc, mainfunc, *args):

    lst = [self.getsection(), option]
    if (default == CustomConfigDefault):
        return mainfunc(*(lst + list(args)))
    else:
        lst.append(default)
        return defaultfunc(*(lst + list(args)))
