def _set_singleton_option_value(self, option, value, append=False,
                                    allow_stream=True, set_dep=True):
        def _force_stream(target, source):
            return target.streamable and \
                source.streamable and \
                source.is_stream()

        # single values
        if isinstance(value, Node):
            # in case the other value is a node, we try to
            # get the node tools default output option
            value = value._tool.options.get_default_output()

        if isinstance(value, Option):
            # the value is an options, we pass on the Options
            # value and create/update the edge
            option.dependency = True
            #new_value = value.raw() if not append else value.value
            new_value = value
            if allow_stream or _force_stream(option, value):
                if option.streamable and value.streamable:
                    # switch the value to the default
                    new_value = value.default
                    allow_stream = True
                else:
                    allow_stream = False
            if not append:
                option.set(new_value)
            else:
                # we do not append directly as we want the value checks to
                # happen
                option.append(new_value)
            # get the edge. The source is the values.source, which
            # references the other options tool
            edge = self._graph.add_edge(value.source, self._tool)
            if edge:
                edge.add_link(value, option, allow_stream=allow_stream)
            else:
                self._pipeline_options.append(
                    {"source": value.source, "option": option,
                     'source_option': value,
                     "stream": allow_stream}
                )
        else:
            if not append:
                if set_dep:
                    option.dependecy = False
                option.set(value)
            else:
                option.append(value)
Set a single value of the given options and create
dataset/ETHPy150Open thasso/pyjip/jip/pipelines.py/Node._set_singleton_option_value