예제 #1
0
    def split_pipeline(self, pipeline):
        """Split the pipeline into input modules and everything else

        pipeline - the pipeline to be split

        returns a two-tuple of input modules and other
        """
        input_modules = []
        other_modules = []
        for module in pipeline.modules():
            if module.is_load_module() or module.is_input_module():
                input_modules.append(module)
            else:
                other_modules.append(module)
        return input_modules, other_modules
예제 #2
0
    def __get_module_files(self):
        self.__module_files = [
            "File Processing",
            "Image Processing",
            "Object Processing",
            "Measurement",
            "Data Tools",
            "Other",
            "All",
        ]
        self.__module_dict = {}
        for key in self.__module_files:
            self.__module_dict[key] = {}

        for mn in cellprofiler_core.modules.get_module_names():

            def loader(module_num, mn=mn):
                module = cellprofiler_core.modules.instantiate_module(mn)
                module.set_module_num(module_num)
                return module

            try:
                module = cellprofiler_core.modules.get_module_class(mn)
                if module.is_input_module():
                    continue
                categories = (
                    [module.category]
                    if isinstance(module.category, str)
                    else list(module.category)
                ) + ["All"]
                for category in categories:
                    if category not in self.__module_files:
                        self.__module_files.insert(-2, category)
                        self.__module_dict[category] = {}
                    self.__module_dict[category][module.module_name] = loader
            except Exception as e:
                import traceback
                import logging

                logging.root.error(
                    "Unable to instantiate module %s.\n\n", mn, exc_info=True
                )