TeamApi

class TeamApi(api)[source]

Bases: ModuleNoParent, UpdateableModule

API for working with teams.

Parameters:
api

Api object to use for API connection.

Usage Example:
import supervisely as sly
api = sly.Api.from_env()
team_info = api.team.get_info_by_id(team_id)

Methods

convert_info_to_json

Convert information about an entity to a dictionary.

create

Creates a new Team with the given name.

exists

exists

get_activity

Get Team activity by Team ID.

get_free_name

get_free_name

get_info_by_id

Get Team information by Team ID.

get_info_by_name

get_info_by_name

get_list

List of all Teams on the Supervisely instance.

get_list_all_pages

Get list of all or limited quantity entities from the Supervisely server.

get_list_all_pages_generator

This generator function retrieves a list of all or a limited quantity of entities from the Supervisely server, yielding batches of entities as they are retrieved

get_list_idx_page_async

Get the list of items for a given page number.

get_list_page_generator_async

Yields list of images in dataset asynchronously page by page.

info_sequence

Sequence of fields that are returned by the API to represent TeamInfo.

info_tuple_name

Name of the tuple that represents TeamInfo.

update

Update an entity with the specified ID.

Attributes

MAX_WAIT_ATTEMPTS

Maximum number of attempts that will be made to wait for a certain condition to be met.

WAIT_ATTEMPT_TIMEOUT_SEC

Number of seconds for intervals between attempts.

InfoType

alias of TeamInfo

classmethod convert_info_to_json(info)

Convert information about an entity to a dictionary.

Parameters:
info : NamedTuple

Information about the entity.

Returns:

Dictionary with information about the entity.

Return type:

dict

static info_sequence()[source]

Sequence of fields that are returned by the API to represent TeamInfo.

Usage Example:
TeamInfo(
    id=1,
    name='Vehicle',
    description='',
    role='admin',
    created_at='2020-03-31T14:49:08.931Z',
    updated_at='2020-03-31T14:49:08.931Z',
    usage=UsageInfo(plan='free')
)
static info_tuple_name()[source]

Name of the tuple that represents TeamInfo.

create(name, description='', change_name_if_conflict=False)[source]

Creates a new Team with the given name.

Parameters:
name : str

Team name.

description : str

Team description.

change_name_if_conflict : bool, optional

Checks if given name already exists and adds suffix to the end of the name.

Returns:

Information about Team.

Return type:

TeamInfo

Usage Example:
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()

new_team = api.team.create("Flowers")
print(new_team)
# Output: TeamInfo(id=228,
#                  name='Flowers',
#                  description='',
#                  role='admin',
#                  created_at='2021-03-11T11:18:46.576Z',
#                  updated_at='2021-03-11T11:18:46.576Z',
#                  UsageInfo(plan='free')               )
exists(name)
get_activity(team_id, filter_user_id=None, filter_project_id=None, filter_job_id=None, filter_actions=None, progress_cb=None, start_date=None, end_date=None, labeler_id=None, review_status=None)[source]

Get Team activity by Team ID.

Parameters:
team_id : int

Team ID in Supervisely.

filter_user_id : int, optional

User ID by which the activity will be filtered.

filter_project_id : int, optional

Project ID by which the activity will be filtered.

filter_job_id : int, optional

Job ID by which the activity will be filtered.

filter_actions : list, optional

List of ActivityAction by which the activity will be filtered.

progress_cb : tqdm or callable, optional

Function to check progress.

start_date : str, optional

Start date to get Team activity.

end_date : str, optional

End date to get Team activity.

labeler_id : int, optional

Labeler ID by which the activity will be filtered.

review_status : str, optional, one of ['done', 'accepted', 'rejected']

Review status by which the activity will be filtered.

Returns:

Team activity

Return type:

List[dict]

Usage Example:
import os
from dotenv import load_dotenv

import supervisely as sly
from supervisely.api.team_api import ActivityAction as aa

# 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()

labeling_actions = [
    aa.ATTACH_TAG,
    aa.UPDATE_TAG_VALUE,
    aa.DETACH_TAG,
]

team_activity = api.team.get_activity(8, filter_actions=labeling_actions)
print(team_activity)
# Output: [
#     {
#         "userId":7,
#         "action":"detach_tag",
#         "date":"2021-01-15T15:11:55.985Z",
#         "user":"cxnt",
#         "projectId":1817,
#         "project":"App_Test_Poly",
#         "datasetId":2370,
#         "dataset":"train",
#         "imageId":726985,
#         "image":"IMG_8144.jpeg",
#         "classId":"None",
#         "class":"None",
#         "figureId":"None",
#         "job":"None",
#         "jobId":"None",
#         "tag":"hhhlk",
#         "tagId":4720,
#         "meta":{}
#     },
#     {
#         "userId":7,
#         "action":"attach_tag",
#         "date":"2021-01-15T14:24:58.480Z",
#         "user":"cxnt",
#         "projectId":1817,
#         "project":"App_Test_Poly",
#         "datasetId":2370,
#         "dataset":"train",
#         "imageId":726985,
#         "image":"IMG_8144.jpeg",
#         "classId":"None",
#         "class":"None",
#         "figureId":"None",
#         "job":"None",
#         "jobId":"None",
#         "tag":"hhhlk",
#         "tagId":4720,
#         "meta":{}
#     }
# ]
get_free_name(name)
get_info_by_id(id, raise_error=False)[source]

Get Team information by Team ID.

Parameters:
id : int

Team ID in Supervisely.

Returns:

Information about Team.

Return type:

TeamInfo

Usage Example:
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()

team_info = api.team.get_info_by_id(8)
print(team_info)
# Output: TeamInfo(id=8,
#          name='Fruits',
#          description='',
#          role='admin',
#          created_at='2020-04-15T10:50:41.926Z',
#          updated_at='2020-04-15T10:50:41.926Z',
#          UsageInfo(plan='free')               )

# You can also get Team info by name
team_info = api.team.get_info_by_name("Fruits")
print(team_info)
# Output: TeamInfo(id=8,
#          name='Fruits',
#          description='',
#          role='admin',
#          created_at='2020-04-15T10:50:41.926Z',
#          updated_at='2020-04-15T10:50:41.926Z',
#          UsageInfo(plan='free')               )
get_info_by_name(name)
get_list(filters=None)[source]

List of all Teams on the Supervisely instance.

Parameters:
filters : list, optional

List of params to sort output Teams.

Returns:

List of all Teams with information.

Return type:

List[TeamInfo]

Usage Example:
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()

team_id = 8
filters = [{"field": "name", "operator": "=", "value": "Team User123"}]
team_list = api.team.get_list(filters=filters)
print(team_list)
# Output: [TeamInfo(id=1,
#                   name='Vehicle',
#                   description='',
#                   role='admin',
#                   created_at='2020-03-31T14:49:08.931Z',
#                   updated_at='2020-03-31T14:49:08.931Z',
#                   UsageInfo(plan='free')               ),
# TeamInfo(id=2,
#          name='Road',
#          description='',
#          role='admin',
#          created_at='2020-03-31T08:52:11.000Z',
#          updated_at='2020-03-31T08:52:11.000Z',
#          UsageInfo(plan='free')               ),
# TeamInfo(id=3,
#          name='Animal',
#          description='',
#          role='admin',
#          created_at='2020-04-02T08:59:03.717Z',
#          updated_at='2020-04-02T08:59:03.717Z',
#          UsageInfo(plan='free')               )
# ]

# Filtered Team list
team_list = api.team.get_list(team_id, filters=[{ 'field': 'name', 'operator': '=', 'value': 'Animal' }])
print(team_list)
# Output: [TeamInfo(id=3,
#                  name='Animal',
#                  description='',
#                  role='admin',
#                  created_at='2020-04-02T08:59:03.717Z',
#                  updated_at='2020-04-02T08:59:03.717Z',
#                  UsageInfo(plan='free')               )
# ]
get_list_all_pages(method, data, progress_cb=None, convert_json_info_cb=None, limit=None, return_first_response=False)

Get list of all or limited quantity entities from the Supervisely server.

Parameters:
method : str

Request method name

data : dict

Dictionary with request body info

progress_cb : Progress, optional

Function for tracking download progress.

convert_json_info_cb : Callable, optional

Function for convert json info

limit : int, optional

Number of entity to retrieve

return_first_response : bool, optional

Specify if return first response

Returns:

List of entities.

Return type:

List[dict]

get_list_all_pages_generator(method, data, progress_cb=None, convert_json_info_cb=None, limit=None, return_first_response=False)

This generator function retrieves a list of all or a limited quantity of entities from the Supervisely server, yielding batches of entities as they are retrieved

Parameters:
method : str

Request method name

data : dict

Dictionary with request body info

progress_cb : Progress, optional

Function for tracking download progress.

convert_json_info_cb : Callable, optional

Function for convert json info

limit : int, optional

Number of entity to retrieve

return_first_response : bool, optional

Specify if return first response

async get_list_idx_page_async(method, data)

Get the list of items for a given page number. Page number is specified in the data dictionary.

Parameters:
method : str

Method to call for listing items.

data : dict

Data to pass to the API method.

Returns:

List of items.

Return type:

Tuple[int, List[NamedTuple]]

async get_list_page_generator_async(method, data, pages_count=None, semaphore=None)

Yields list of images in dataset asynchronously page by page.

Parameters:
method : str

Method to call for listing items.

data : dict

Data to pass to the API method.

pages_count : int, optional

Preferred number of pages to retrieve if used with a per_page limit. Will be automatically adjusted if the pagesCount differs from the requested number.

semaphore=None

Semaphore for limiting the number of simultaneous requests.

Returns:

List of images in dataset.

Return type:

AsyncGenerator[List[ImageInfo]]

Usage Example:
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()

method = 'images.list'
data = {'datasetId': 123456}

loop = sly.utils.get_or_create_event_loop()
images = loop.run_until_complete(api.image.get_list_generator_async(method, data))
update(id, name=None, description=None)

Update an entity with the specified ID.

Parameters:
id : int

ID of the entity to update.

name : str, optional

New name of the entity.

description : str, optional

New description of the entity.

Returns:

Entity with updated information.

Return type:

dict