def make_workspaces(self, input_images):
        pipeline = cpp.Pipeline()

        def callback(caller, event):
            self.assertFalse(isinstance(event, cpp.RunExceptionEvent))

        pipeline.add_listener(callback)
        module = R.RunImageJ()
        module.module_num = 1
        module.wants_to_set_current_image.value = False
        module.current_input_image_name.value = INPUT_IMAGE_NAME
        module.current_output_image_name.value = OUTPUT_IMAGE_NAME
        pipeline.add_module(module)
        image_set_list = cpi.ImageSetList()
        workspaces = []
        for i, input_image in enumerate(input_images):
            image_set = image_set_list.get_image_set(i)
            image_set.add(INPUT_IMAGE_NAME, cpi.Image(input_image))
            workspace = cpw.Workspace(pipeline, module, image_set,
                                      cpo.ObjectSet(), cpm.Measurements(),
                                      image_set_list)
            workspaces.append(workspace)
        module.prepare_group(workspaces[0], {},
                             list(range(1,
                                        len(input_images) + 1)))
        return workspaces, module
    def make_workspace(self, input_image=None, wants_output_image=False):
        pipeline = cpp.Pipeline()

        def callback(caller, event):
            self.assertFalse(isinstance(event, cpp.RunExceptionEvent))

        pipeline.add_listener(callback)
        module = R.RunImageJ()
        module.module_num = 1
        pipeline.add_module(module)
        image_set_list = cpi.ImageSetList()
        image_set = image_set_list.get_image_set(0)
        if input_image is None:
            module.wants_to_set_current_image.value = False
        else:
            module.wants_to_set_current_image.value = True
            module.current_input_image_name.value = INPUT_IMAGE_NAME
            image_set.add(INPUT_IMAGE_NAME, cpi.Image(input_image))
        module.wants_to_get_current_image.value = wants_output_image
        if wants_output_image:
            module.current_output_image_name.value = OUTPUT_IMAGE_NAME
        workspace = cpw.Workspace(pipeline, module, image_set, cpo.ObjectSet(),
                                  cpm.Measurements(), image_set_list)
        module.prepare_group(workspace, {}, [1])
        return workspace, module