Source code for supervisely.api.plugin_api

# coding: utf-8
"""get list of plugins for supervisely team"""

from __future__ import annotations
from typing import NamedTuple, List, Dict, Optional

from supervisely.api.module_api import ApiField, ModuleApi


[docs]class PluginApi(ModuleApi): """ API for working with plugins. :class:`PluginApi<PluginApi>` object is immutable. :param api: API connection to the server :type api: Api :Usage example: .. code-block:: python import os from dotenv import load_dotenv import supervisely as sly # Load secrets and create API object from .env file (recommended) # Learn more here: https://developer.supervisely.com/getting-started/basics-of-authentication if sly.is_development(): load_dotenv(os.path.expanduser("~/supervisely.env")) api = sly.Api.from_env() # Pass values into the API constructor (optional, not recommended) # api = sly.Api(server_address="https://app.supervise.ly", token="4r47N...xaTatb") team_id = 8 plugin_info = api.plugin.get_list(team_id) """
[docs] @staticmethod def info_sequence(): """ NamedTuple PluginInfo information about Plugin. :Example: .. code-block:: python PluginInfo(id=3, name='DTL', description='Allows to combine datasets, to make class mapping, filter objects and images, apply auto augmentations and so on ...', type='dtl', default_version='latest', docker_image='docker.deepsystems.io/supervisely/five/dtl', readme='# Data Transformation Language (DTL)...', configs=[], versions=['lately', 'docs', ...], created_at='2020-03-30T09:17:36.000Z', updated_at='2020-04-23T06:26:29.000Z') """ return [ ApiField.ID, ApiField.NAME, ApiField.DESCRIPTION, ApiField.TYPE, ApiField.DEFAULT_VERSION, ApiField.DOCKER_IMAGE, ApiField.README, ApiField.CONFIGS, ApiField.VERSIONS, ApiField.CREATED_AT, ApiField.UPDATED_AT, ]
[docs] @staticmethod def info_tuple_name(): """ NamedTuple name - **PluginInfo**. """ return "PluginInfo"
[docs] def get_list( self, team_id: int, filters: Optional[List[Dict[str, str]]] = None ) -> List[NamedTuple]: """ Get list of plugins in the Team. :param team_id: Team ID in Supervisely. :type team_id: int :param filters: List of params to sort output Plugins. :type filters: List[dict], optional :return: List of Plugins with information. See :class:`info_sequence<info_sequence>` :rtype: :class:`List[NamedTuple]` :Usage example: .. code-block:: python import supervisely as sly os.environ['SERVER_ADDRESS'] = 'https://app.supervise.ly' os.environ['API_TOKEN'] = 'Your Supervisely API Token' api = sly.Api.from_env() team_id = 8 plugin_info = api.plugin.get_list(team_id) plugin_list_filter = api.plugin.get_list(team_id, filters=[{'field': 'name', 'operator': '=', 'value': 'Images'}]) """ return self.get_list_all_pages( "plugins.list", {ApiField.TEAM_ID: team_id, ApiField.FILTER: filters or []} )
[docs] def get_info_by_id(self, team_id: int, plugin_id: int) -> NamedTuple: """ Get Plugin information by ID. :param team_id: Team ID in Supervisely. :type team_id: int :param plugin_id: Plugin ID in Supervisely. :type plugin_id: int :return: Information about Plugin. See :class:`info_sequence<info_sequence>` :rtype: :class:`NamedTuple` :Usage example: .. code-block:: python import supervisely as sly os.environ['SERVER_ADDRESS'] = 'https://app.supervise.ly' os.environ['API_TOKEN'] = 'Your Supervisely API Token' api = sly.Api.from_env() plugin_info = api.plugin.get_info_by_id(8, 3) print(plugin_info) # Output: PluginInfo(id=3, # name='DTL', # description='Allows to combine datasets, to make class mapping, filter objects and images, apply auto augmentations and so on ...', # type='dtl', # default_version='latest', # docker_image='docker.deepsystems.io/supervisely/five/dtl', # readme='# Data Transformation Language (DTL)...', # configs=[], # versions=['lately', 'docs', ...], # created_at='2020-03-30T09:17:36.000Z', # updated_at='2020-04-23T06:26:29.000Z') """ filters = [{"field": ApiField.ID, "operator": "=", "value": plugin_id}] return self._get_info_by_filters(team_id, filters)