'Return module initialized from the data in dictionary `step_dict`.'

def from_dict(self, trans, repository_id, changeset_revision, step_dict, tools_metadata, **kwd):

    type = step_dict['type']
    assert (type in self.module_types)
    module_method_kwds = dict(**kwd)
    if (type == 'tool'):
        module_method_kwds['repository_id'] = repository_id
        module_method_kwds['changeset_revision'] = changeset_revision
        module_method_kwds['tools_metadata'] = tools_metadata
    return self.module_types[type].from_dict(trans, step_dict, **module_method_kwds)
