SelectDataset

Introduction

SelectDataset widget is a dropdown menu that allows users to select a dataset or multiple datasets from a list of available datasets in the current project. It displays the name of each dataset in the list.

Function signature

SelectDataset(
    default_id=None,
    project_id=None,
    multiselect=False,
    compact=False,
    show_label=True,
    size=None,
    disabled=False,
    widget_id=None,
    select_all_datasets = False,
    allowed_project_types = [],
)

Parameters

ParametersTypeDescription

default_id

int

Dataset ID

project_id

int

Project ID

multiselect

bool

Allow to select all datasets in current project

compact

bool

Show only dataset select

show_label

bool

Show label

size

Literal["large", "small", "mini", None]

Selector size

disabled

bool

Disable dataset select

widget_id

str

ID of the widget

select_all_datasets

bool

Select all datasets

allowed_project_types

List[ProjectType]

List of allowed project types

default_id

Determine Dataset will be selected by default.

type: int

default value: None

select_project = SelectDataset(default_id=dataset_id)

project_id

Determine Project will be selected by default.

type: int

default value: None

select_project = SelectDataset(project_id=project_id)

multiselect

Allow to select multiple datasets in current project.

type: bool

default value: false

select_dataset = SelectDataset(default_id=dataset_id, project_id=project_id, multiselect=True)

compact

Show only Dataset select.

type: bool

default value: false

select_dataset = SelectDataset(default_id=dataset_id, project_id=project_id, compact=True)

show_label

Determine show text Dataset on widget or not, work only if compact is True.

type: bool

default value: True

select_dataset = SelectDataset(
    default_id=dataset_id, project_id=project_id, compact=True, show_label=False
)

size

Size of input.

type: Literal["large", "small", "mini", None]

default value: None

select_dataset = SelectDataset(
    default_id=dataset_id, project_id=project_id, compact=True, show_label=False
)
select_mini = SelectDataset(
    default_id=dataset_id, project_id=project_id, compact=True, show_label=False, size="mini"
)
select_small = SelectDataset(
    default_id=dataset_id, project_id=project_id, compact=True, show_label=False, size="small"
)
select_large = SelectDataset(
    default_id=dataset_id, project_id=project_id, compact=True, show_label=False, size="large"
)
card = Card(
    title="Select Dataset",
    content=Container(widgets=[select_dataset, select_mini, select_small, select_large]),
)

disabled

Determine Dataset select ability.

type: bool

default value: false

select_dataset = SelectDataset(default_id=dataset_id, project_id=project_id, disabled=True)

select_all_datasets

Select all datasets in current project. Work only if multiselect is True.

type: bool

default value: false

select_dataset = SelectDataset(
    default_id=dataset_id,
    project_id=project_id,
    multiselect=True,
    select_all_datasets=True
)

allowed_project_types

List of allowed project types.

type: List[ProjectType]

default value: None

select_dataset = SelectDataset(
    default_id=dataset_id,
    project_id=project_id,
    allowed_project_types=[sly.ProjectType.POINT_CLOUD_EPISODES]
)

widget_id

ID of the widget.

type: str

default value: None

Methods and attributes

Attributes and MethodsDescription

get_selected_id()

Return selected dataset ID, if multiselect is True raise ValueError.

get_selected_ids()

Return selected dataset IDs, if multiselect is False raise ValueError.

get_selected_project_id()

Return id of selected Project, if compact is False.

set_project_id()

Set current project id.

disable()

Set disabled attribute == True.

enable()

Set disabled attribute == False.

@value_changed

Decorator functions is handled when selected dataset ID is changed.

Mini App Example

You can find this example in our Github repository:

ui-widgets-demos/selection/005_select_dataset/src/main.py

Import libraries

import os

import supervisely as sly
from dotenv import load_dotenv
from supervisely.app.widgets import Card, Container, SelectDataset

Init API client

First, we load environment variables with credentials and init API for communicating with Supervisely Instance:

load_dotenv("local.env")
load_dotenv(os.path.expanduser("~/supervisely.env"))

api = sly.Api()

Prepare project_id and dataset_id

project_id = sly.env.project_id()
dataset_id = sly.env.dataset_id()

Initialize SelectDataset widget

select_dataset = SelectDataset(
    default_id=dataset_id,
    project_id=project_id,
)

Create app layout

Prepare a layout for app using Card widget with the content parameter and place widget that we've just created in the Container widget.

card = Card(
    title="Select Dataset",
    content=Container(widgets=[select_dataset]),
)

layout = Container(widgets=[card])

Create app using layout

Create an app object with layout parameter.

app = sly.Application(layout=layout)

Last updated