Source code for supervisely.api.role_api
# coding: utf-8
"""list all user roles that are available on private 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):
id: int
role: str
created_at: str
updated_at: str
[docs]class RoleApi(ModuleApiBase):
"""
API for working with Roles. :class:`RoleApi<RoleApi>` 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")
roles = api.role.get_list() # api usage example
"""
[docs] class DefaultRole(IntEnum):
"""class DefaultRole"""
ADMIN = 1
""""""
DEVELOPER = 2
""""""
ANNOTATOR = 3
""""""
VIEWER = 4
""""""
[docs] @staticmethod
def info_sequence():
"""
NamedTuple RoleInfo information about Role.
: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():
"""
NamedTuple name - **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 private Supervisely instance.
:param filters: List of params to sort output Roles.
:type filters: list
:return: List of all roles with information. See :class:`info_sequence<info_sequence>`
:rtype: :class:`List[RoleInfo]`
: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()
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())