Warning

This document is for an old release of Galaxy. You can alternatively view this page in the latest release if it exists or view the top of the latest release's documentation.

Source code for galaxy.tool_util.toolbox.views.sources

import logging
import os
from typing import (
    Dict,
    List,
)

import yaml

from galaxy.util import config_directories_from_setting
from .definitions import StaticToolBoxView

log = logging.getLogger(__name__)

EXTENSIONS = [".yml", ".yaml", ".json"]


[docs]class StaticToolBoxViewSources: view_directories: List[str] view_dicts: List[Dict]
[docs] def __init__(self, view_directories=None, view_dicts=None): self.view_directories = config_directories_from_setting(view_directories) or [] self.view_dicts = view_dicts or []
[docs] def get_definitions(self) -> List[StaticToolBoxView]: view_definitions = [] for view_dict in self.view_dicts: view_definitions.append(StaticToolBoxView.from_dict(view_dict)) for view_directory in self.view_directories: if not os.path.exists(view_directory): log.warning(f"Failed to find toolbox view directory {view_directory}") for filename in os.listdir(view_directory): if not looks_like_view_source_filename(filename): continue view_path = os.path.join(view_directory, filename) with open(view_path) as f: view_dict = yaml.safe_load(f) if "id" not in view_dict: file_id = os.path.splitext(filename)[0] view_dict["id"] = file_id view_definitions.append(StaticToolBoxView.from_dict(view_dict)) return view_definitions
[docs]def looks_like_view_source_filename(filename: str) -> bool: for ext in EXTENSIONS: if filename.endswith(ext): return True return False