def from_config(cls, cp, section, outputs):
        """Loads a CustomTransform from the given config file.

        Example section:

        .. code-block:: ini

            [{section}-outvar1+outvar2]
            name = custom
            inputs = inputvar1, inputvar2
            outvar1 = func1(inputs)
            outvar2 = func2(inputs)
            jacobian = func(inputs)
        """
        tag = outputs
        outputs = set(outputs.split(VARARGS_DELIM))
        inputs = map(str.strip,
                     cp.get_opt_tag(section, 'inputs', tag).split(','))
        # get the functions for each output
        transform_functions = {}
        for var in outputs:
            # check if option can be cast as a float
            func = cp.get_opt_tag(section, var, tag)
            transform_functions[var] = func
        s = '-'.join([section, tag])
        if cp.has_option(s, 'jacobian'):
            jacobian = cp.get_opt_tag(section, 'jacobian', tag)
        else:
            jacobian = None
        return cls(inputs, outputs, transform_functions, jacobian=jacobian)
Loads a CustomTransform from the given config file.

        Example section:

        .. code-block:: ini

            [{section}-outvar1+outvar2]
            name = custom
            inputs = inputvar1, inputvar2
            outvar1 = func1(inputs)
            outvar2 = func2(inputs)
            jacobian = func(inputs)