コード例 #1
0
def get_available_modules():
    '''Lists all available Jterator modules in the
    `JtLibrary <https://github.com/TissueMAPS/JtLibrary>`_ repository.
    '''
    logger.info('get list of available jterator modules')
    modules = AvailableModules()
    return jsonify(jtmodules=modules.to_dict())
コード例 #2
0
ファイル: api.py プロジェクト: dvischi/TissueMAPS
def get_available_modules():
    '''Lists all available Jterator modules in the
    `JtLibrary <https://github.com/TissueMAPS/JtLibrary>`_ repository.
    '''
    logger.info('get list of available jterator modules')
    modules = AvailableModules()
    return jsonify(jtmodules=modules.to_dict())
コード例 #3
0
ファイル: api.py プロジェクト: thejohnhoffer/TissueMAPS
 def pipeline(self):
     '''List[tmlib.jterator.module.ImageAnalysisModule]:
     pipeline built based on
     :class`PipelineDescription <tmlib.workflow.jterator.description.PipelineDescription>` and
     :class:`HandleDescriptions <tmlib.workflow.jterator.description.HandleDescriptions>`.
     '''
     handles = self.project.handles  # only compute this once
     pipeline = list()
     for i, element in enumerate(self.project.pipe.description.pipeline):
         if not element.active:
             continue
         if '/' in element.source:
             logger.debug(
                 'assuming module `%s` resides outside the configured module path',
                 element.source)
             source_file = os.path.expanduser(
                 os.path.expandvars(element.source))
             if not os.path.isabs(source_file):
                 source_file = os.path.join(self.step_location, source_file)
         else:
             logger.debug(
                 'searching for module `%s` in configured module path %r ...',
                 element.source, cfg.modules_path)
             source_file = AvailableModules().find_module_by_name(
                 element.source)
         if not os.path.exists(source_file):
             raise PipelineDescriptionError(
                 'Module source `{0}` resolved to non-existing file `{1}`'.
                 format(element.source, source_file))
         pipeline.append(
             ImageAnalysisModule(name=handles[i].name,
                                 source_file=source_file,
                                 handles=handles[i].description))
     return pipeline
コード例 #4
0
def get_module_source_code():
    '''Gets the source code for a given module.'''
    module_filename = request.args.get('module_filename')
    logger.info('get source code of module file "%s"', module_filename)
    modules = AvailableModules()
    files = [
        f for i, f in enumerate(modules.module_files)
        if os.path.basename(f) == module_filename
    ]
    return send_file(files[0])
コード例 #5
0
def get_module_source_code():
    '''Gets the source code for a given module.'''
    name = request.args.get('module_name')
    logger.info('get source code of module "%s"', name)
    try:
        modules = AvailableModules()
        # XXX: this code relies on the fact that `.module_names` and
        # `.module_files` return corresponding items at the same
        # position in the list!  The `AvailableModules` class should
        # be changed to provide a map name=>List[files] instead.
        idx = modules.module_names.index(name)
        return send_file(modules.module_files[idx])
    except ValueError:
        logger.error("Could not find module `%s` in available modules %r",
                     name, modules.module_names)
        raise