Source code for bioblend.toolshed.categories

"""
Interaction with a Tool Shed instance categories
"""

from typing import (
    Any,
    Dict,
    List,
    Literal,
    TYPE_CHECKING,
)

from bioblend.galaxy.client import Client

if TYPE_CHECKING:
    from bioblend.toolshed import ToolShedInstance


[docs] class ToolShedCategoryClient(Client): module = "categories" def __init__(self, toolshed_instance: "ToolShedInstance") -> None: super().__init__(toolshed_instance)
[docs] def get_categories(self, deleted: bool = False) -> List[Dict[str, Any]]: """ Returns a list of dictionaries that contain descriptions of the repository categories found on the given Tool Shed instance. :type deleted: bool :param deleted: whether to show deleted categories. Requires administrator access to the Tool Shed instance. :rtype: list :return: A list of dictionaries containing information about repository categories present in the Tool Shed. For example:: [{'deleted': False, 'description': 'Tools for manipulating data', 'id': '175812cd7caaf439', 'model_class': 'Category', 'name': 'Text Manipulation', 'url': '/api/categories/175812cd7caaf439'}] .. versionadded:: 0.5.2 """ return self._get(deleted=deleted)
[docs] def show_category(self, category_id: str) -> Dict[str, Any]: """ Get details of a given category. :type category_id: str :param category_id: Encoded category ID :rtype: dict :return: details of the given category """ return self._get(id=category_id)
[docs] def get_repositories( self, category_id: str, sort_key: Literal["name", "owner"] = "name", sort_order: Literal["asc", "desc"] = "asc" ) -> Dict[str, Any]: """ Returns a dictionary of information for a repository category including a list of repositories belonging to the category. :type category_id: str :param category_id: Encoded category ID :type sort_key: str :param sort_key: key for sorting. Options are 'name' or 'owner' (default 'name'). :type sort_order: str :param sort_order: ordering of sorted output. Options are 'asc' or 'desc' (default 'asc'). :rtype: dict :return: A dict containing information about the category including a list of repository dicts. For example:: {'deleted': False, 'description': 'Tools for constructing and analyzing 3-dimensional shapes and ' 'their properties', 'id': '589548af7e391bcf', 'model_class': 'Category', 'name': 'Constructive Solid Geometry', 'repositories': [{'create_time': '2016-08-23T18:53:23.845013', 'deleted': False, 'deprecated': False, 'description': 'Adds a surface field to a selected shape ' 'based on a given mathematical expression', 'homepage_url': 'https://github.com/gregvonkuster/galaxy-csg', 'id': 'af2ccc53697b064c', 'metadata': {'0:e12b55e960de': {'changeset_revision': 'e12b55e960de', 'downloadable': True, 'has_repository_dependencies': False, 'id': 'dfe022067783215f', 'includes_datatypes': False, 'includes_tool_dependencies': False, 'includes_tools': True, 'includes_tools_for_display_in_tool_panel': True, 'includes_workflows': False, 'malicious': False, 'missing_test_components': False, 'model_class': 'RepositoryMetadata', 'numeric_revision': 0, 'repository_id': 'af2ccc53697b064c'}}, 'model_class': 'Repository', 'name': 'icqsol_add_surface_field_from_expression', 'owner': 'iuc', 'private': False, 'remote_repository_url': 'https://github.com/gregvonkuster/galaxy-csg', 'times_downloaded': 152, 'type': 'unrestricted', 'user_id': 'b563abc230aa8fd0'}, # ... ], 'repository_count': 11, 'url': '/api/categories/589548af7e391bcf'} """ params: Dict[str, Any] = {} if sort_key: params.update({"sort_key": sort_key}) if sort_order: params.update({"sort_order": sort_order}) url = self._make_url(category_id) + "/repositories" return self._get(url=url, params=params)