Ejemplo n.º 1
0
    def run_task(self, result_id, runjob_id, *args, **kwargs):
        """Note: Even if you decide to override the entire run method,
            make sure you load and save images with gamera methods, and not PIL methods.
            Otherwise the loaded/saved images often don't have the proper pixel types,
            and becomes unsuitable for use in a workflow with other gamera-based jobs."""

        runjob = RunJob.objects.get(pk=runjob_id)

        if runjob.needs_input:
            if runjob.status == RunJobStatus.RUN_ONCE_WAITING:
                self.retry(args=[result_id, runjob_id], *args, countdown=10, **kwargs)

            else:
                # This is the first time the job is running.
                taskutil.set_running(runjob)
                page_url = taskutil.get_page_url(runjob, result_id)
                settings = taskutil.get_settings(runjob)

                updates = self.preconfigure_settings(page_url, settings)
                taskutil.apply_updates(runjob, updates)

                taskutil.set_run_once_waiting(runjob)
                self.retry(args=[result_id, runjob_id], *args, countdown=10, **kwargs)

        else:
            taskutil.set_running(runjob)
            page_url = taskutil.get_page_url(runjob, result_id)
            settings = taskutil.get_settings(runjob)

            init_gamera()
            task_image = load_image(page_url)
            result_image = self.process_image(task_image, settings)

            result = taskutil.save_result_as_png(result_image, runjob)
            return str(result.uuid)
Ejemplo n.º 2
0
    def run_task(self, result_id, runjob_id, *args, **kwargs):
        """Note: Even if you decide to override the entire run method,
            make sure you load and save images with gamera methods, and not PIL methods.
            Otherwise the loaded/saved images often don't have the proper pixel types,
            and becomes unsuitable for use in a workflow with other gamera-based jobs."""

        runjob = RunJob.objects.get(pk=runjob_id)

        if runjob.needs_input:
            if runjob.status == RunJobStatus.RUN_ONCE_WAITING:
                self.retry(args=[result_id, runjob_id],
                           *args,
                           countdown=10,
                           **kwargs)

            else:
                # This is the first time the job is running.
                taskutil.set_running(runjob)
                page_url = taskutil.get_page_url(runjob, result_id)
                settings = taskutil.get_settings(runjob)

                updates = self.preconfigure_settings(page_url, settings)
                taskutil.apply_updates(runjob, updates)

                taskutil.set_run_once_waiting(runjob)
                self.retry(args=[result_id, runjob_id],
                           *args,
                           countdown=10,
                           **kwargs)

        else:
            taskutil.set_running(runjob)
            page_url = taskutil.get_page_url(runjob, result_id)
            settings = taskutil.get_settings(runjob)

            init_gamera()
            task_image = load_image(page_url)
            result_image = self.process_image(task_image, settings)

            result = taskutil.save_result_as_png(result_image, runjob)
            return str(result.uuid)
Ejemplo n.º 3
0
    def run_task(self, result_id, runjob_id, *args, **kwargs):
        runjob = RunJob.objects.get(pk=runjob_id)
        taskutil.set_running(runjob)
        xml_filepath = taskutil.get_input_path(runjob, result_id)   # Trouble
        settings = taskutil.get_settings(runjob)

        segmented_image_path = self._get_segmented_image_path(runjob.workflow_run,
                                                              settings['segmented_image_source'],
                                                              runjob.page)
        page_order = runjob.page.page_order

        mei_document = self.process_image(segmented_image_path, xml_filepath, settings, page_order)
        result = self.save_result(runjob, mei_document)
        return str(result.uuid)
Ejemplo n.º 4
0
    def run_task(self, result_id, runjob_id, *args, **kwargs):
        runjob = RunJob.objects.get(pk=runjob_id)
        taskutil.set_running(runjob)
        xml_filepath = taskutil.get_input_path(runjob, result_id)  # Trouble
        settings = taskutil.get_settings(runjob)

        segmented_image_path = self._get_segmented_image_path(
            runjob.workflow_run, settings['segmented_image_source'],
            runjob.page)
        page_order = runjob.page.page_order

        mei_document = self.process_image(segmented_image_path, xml_filepath,
                                          settings, page_order)
        result = self.save_result(runjob, mei_document)
        return str(result.uuid)