WorkspaceApi

class WorkspaceApi(api)[source]

Bases: ModuleApi, UpdateableModule

API for working with workspaces.

Parameters:
api

Api object to use for API connection.

Usage Example:
import supervisely as sly
api = sly.Api.from_env()
workspace_info = api.workspace.get_info_by_id(workspace_id)

Methods

change_visibility

Change Workspace visibility by Workspace ID.

convert_info_to_json

Convert information about an entity to a dictionary.

create

Create a new Workspace with the given name in the given Team.

exists

Checks if an entity with the given parent_id and name exists

get_free_name

Generates a free name for an entity with the given parent_id and name.

get_info_by_id

Get Workspace information by Workspace ID.

get_info_by_name

Get information about an entity by its name from the Supervisely server.

get_list

List of Workspaces in the given Team 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 WorkspaceInfo.

info_tuple_name

Name of the tuple that represents WorkspaceInfo.

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 WorkspaceInfo

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 WorkspaceInfo.

Usage Example:
WorkspaceInfo(
    id=15,
    name='Cars',
    description='Workspace contains Project with annotated Cars',
    team_id=8,
    created_at='2020-04-15T10:50:41.926Z',
    updated_at='2020-04-15T10:50:41.926Z'
)
static info_tuple_name()[source]

Name of the tuple that represents WorkspaceInfo.

change_visibility(id, visible)[source]

Change Workspace visibility by Workspace ID.

Parameters:
id : int

Workspace ID.

visible : bool

Visibility status.

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

api.workspace.change_visibility(58, False)
create(team_id, name, description='', change_name_if_conflict=False, hidden=False)[source]

Create a new Workspace with the given name in the given Team.

Parameters:
team_id : int

Team ID in Supervisely where Workspace will be created.

name : str

Workspace Name.

description : str

Workspace description.

change_name_if_conflict : bool

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

hidden : bool

Whether the workspace should be hidden or not.

Returns:

Information about Workspace.

Return type:

WorkspaceInfo

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_workspace = api.workspace.create(8, "Vehicle Detection")
print(new_workspace)
# Output: WorkspaceInfo(id=274,
#                       name='Vehicle Detection"',
#                       description='',
#                       team_id=8,
#                       created_at='2021-03-11T12:24:21.773Z',
#                       updated_at='2021-03-11T12:24:21.773Z')
exists(parent_id, name)

Checks if an entity with the given parent_id and name exists

Parameters:
parent_id : int

ID of the parent entity.

name : str

Name of the entity.

Returns:

Returns True if entity exists, and False if not

Return type:

bool

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

name = "IMG_0315.jpeg"
dataset_id = 55832
exists = api.image.exists(dataset_id, name)
print(exists) # True
get_free_name(parent_id, name)

Generates a free name for an entity with the given parent_id and name. Adds an increasing suffix to original name until a unique name is found.

Parameters:
parent_id : int

ID of the parent entity.

name : str

Name of the entity.

Returns:

Returns free name.

Return type:

str

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

name = "IMG_0315.jpeg"
dataset_id = 55832
free_name = api.image.get_free_name(dataset_id, name)
print(free_name) # IMG_0315_001.jpeg
get_info_by_id(id, raise_error=False)[source]

Get Workspace information by Workspace ID.

Parameters:
id : int

Workspace ID in Supervisely.

Returns:

Information about Workspace.

Return type:

WorkspaceInfo

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

workspace_info = api.workspace.get_info_by_id(58)
print(workspace_info)
# Output: WorkspaceInfo(id=58,
#                       name='Test',
#                       description='',
#                       team_id=8,
#                       created_at='2020-11-09T18:21:08.202Z',
#                       updated_at='2020-11-09T18:21:08.202Z')
get_info_by_name(parent_id, name, fields=[])

Get information about an entity by its name from the Supervisely server.

Parameters:
parent_id : int

ID of the parent entity.

name : str

Name of the entity for which the information is being retrieved.

fields : List[str]

The list of api fields which will be returned with the response.

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

dataset_id = 55832
name = "IMG_0315.jpeg"
info = api.image.get_info_by_name(dataset_id, name)
print(info)
# Output: ImageInfo(id=19369643, name='IMG_0315.jpeg', ...)
get_list(team_id, filters=None)[source]

List of Workspaces in the given Team on the Supervisely instance.

Parameters:
team_id : int

Team ID in which the Workspaces are located.

filters : List[Dict[str, str]], optional

List of params to sort output Workspaces.

Returns:

List of all Workspaces with information for the given Team.

Return type:

List[WorkspaceInfo]

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

workspace_infos = api.workspace.get_list(8)
print(workspace_infos)
# Output: [
# WorkspaceInfo(id=15,
#               name='Cars',
#               description='',
#               team_id=8,
#               created_at='2020-04-15T10:50:41.926Z',
#               updated_at='2020-04-15T10:50:41.926Z'),
# WorkspaceInfo(id=18,
#               name='Heart',
#               description='',
#               team_id=8,
#               created_at='2020-05-20T15:01:54.172Z',
#               updated_at='2020-05-20T15:01:54.172Z'),
# WorkspaceInfo(id=20,
#               name='PCD',
#               description='',
#               team_id=8,
#               created_at='2020-06-24T11:51:11.336Z',
#               updated_at='2020-06-24T11:51:11.336Z')
# ]

# Filtered Workspace list
workspace_infos = api.workspace.get_list(8, filters=[{ 'field': 'name', 'operator': '=', 'value': 'Heart'}])
print(workspace_infos)
# Output: [WorkspaceInfo(id=18,
#                       name='Heart',
#                       description='',
#                       team_id=8,
#                       created_at='2020-05-20T15:01:54.172Z',
#                       updated_at='2020-05-20T15:01:54.172Z')
# ]
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