Source code for supervisely.api.role_api

# coding: utf-8
"""List user roles available in a Supervisely instance."""

# docs
from __future__ import annotations

from enum import IntEnum
from typing import Dict, List, NamedTuple, Optional

from supervisely.api.module_api import ApiField, ModuleApiBase


class RoleInfo(NamedTuple):
    """NamedTuple describing a role entry returned by the API."""

    id: int
    role: str
    created_at: str
    updated_at: str


[docs] class RoleApi(ModuleApiBase): """API for working with roles.""" def __init__(self, api): """ :param api: :class:`~supervisely.api.api.Api` object to use for API connection. :type api: :class:`~supervisely.api.api.Api` :Usage Example: .. code-block:: python import supervisely as sly api = sly.Api.from_env() roles = api.role.get_list() """ super().__init__(api)
[docs] class DefaultRole(IntEnum): """Built-in role IDs used by the platform (admin/developer/annotator/viewer).""" ADMIN = 1 """""" DEVELOPER = 2 """""" ANNOTATOR = 3 """""" VIEWER = 4 """"""
[docs] @staticmethod def info_sequence(): """ Sequence of fields that are returned by the API to represent RoleInfo. :Usage Example: .. code-block:: python RoleInfo( id=71, role='manager', created_at='2019-12-10T14:31:41.878Z', updated_at='2019-12-10T14:31:41.878Z' ) """ return [ApiField.ID, ApiField.ROLE, ApiField.CREATED_AT, ApiField.UPDATED_AT]
[docs] @staticmethod def info_tuple_name(): """ Name of the tuple that represents RoleInfo. """ return "RoleInfo"
[docs] def get_list(self, filters: Optional[List[Dict[str, str]]] = None) -> List[RoleInfo]: """ List of all roles that are available on the Supervisely instance. :param filters: List of params to sort output Roles. :type filters: List[Dict[str, str]] :returns: List of all roles with information. :rtype: List[:class:`~supervisely.api.role_api.RoleInfo`] :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() roles = api.role.get_list() """ return self.get_list_all_pages("roles.list", {ApiField.FILTER: filters or []})
def _convert_json_info(self, info: dict, skip_missing=True): """ """ res = super()._convert_json_info(info, skip_missing=skip_missing) return RoleInfo(**res._asdict())