def execute_step(self, step):
        """
        Execute the named step. Also control the multiplicity of input and output entities

        :param step: step to prepare input for
        :param kwargs: input to be prepared
        :return: dict of output by entity type
        """
        inputs = self.get_inputs(step.ins)
        outputs = defaultdict(list)
        for output in step.run(inputs):
            for k, v in output.items():
                outputs[k].extend(v)
        for output in step.finalise():
            for k, v in output.items():
                outputs[k].extend(v)
        self.unresolved_steps.remove(step)
        return outputs
def execute_step ( self , step ) : inputs = self . get_inputs ( step . ins ) outputs = defaultdict ( list ) for output in step . run ( inputs ) : for k , v in output . items ( ) : outputs [ k ] . extend ( v ) for output in step . finalise ( ) : for k , v in output . items ( ) : outputs [ k ] . extend ( v ) self . unresolved_steps . remove ( step ) return outputs
Execute the named step. Also control the multiplicity of input and output entities

        :param step: step to prepare input for
        :param kwargs: input to be prepared
        :return: dict of output by entity type