docs: def _execute_task(self, *, dependency, input_args, intermediate_results, monitor):
          """Executes a task of the workflow.
  
          :param dependency: A workflow dependency
          :type dependency: Dependency
          :param input_args: External task parameters.
          :type input_args: dict
          :param intermediate_results: The dictionary containing intermediate results, including the results of all
          tasks that the current task depends on.
          :type intermediate_results: dict
          :return: The result of the task in dependency
          :rtype: object
          """
          task = dependency.task
          inputs = tuple(intermediate_results[self.uuid_dict[input_task.private_task_config.uuid]]
                         for input_task in dependency.inputs)
  
          kw_inputs = input_args.get(task, {})
          if isinstance(kw_inputs, tuple):
              inputs += kw_inputs
              kw_inputs = {}
  
          LOGGER.debug("Computing %s(*%s, **%s)", str(task), str(inputs), str(kw_inputs))
          return task(*inputs, **kw_inputs, monitor=monitor)