def set_value(self, section, variable, value):
        """
        Set config input value directly,
        see :mod:`pyhector.emissions` for possible values.

        Parameters
        ----------
        section : str
            Component in Hector config.
        variable : str
            Name of emissions variable.
        value : pandas.Series, list, tuple, float, or str
            Pandas Series, list of tuple values with time, list of tuple values
            with time and unit, single tuple, float or string as in ini config
            file.
        """
        if isinstance(value, pd.Series):  # values with time as Series
            values = list(zip(value.index, value))
            for v in values:
                self._set_timed_double(section, variable, v[0], v[1])
        elif isinstance(value, list):  # values with time
            for v in value:
                if len(v) == 3:  # timed value with unit
                    self._set_timed_double_unit(section, variable, v[0], v[1], v[2])
                else:  # timed value without unit
                    self._set_timed_double(section, variable, v[0], v[1])
        elif isinstance(value, tuple):  # value with unit
            self._set_double_unit(section, variable, value[0], value[1])
        elif isinstance(value, str):  # value is string
            self._set_string(section, variable, value)
        else:  # value is only double
            self._set_double(section, variable, value)