SelectProject

Introduction

SelectProject widget in Supervisely is a dropdown menu that allows users to select a project from a list of available projects in current workspace. Clicking on it can be processed from python code. This widget is particularly useful when working with multiple projects in Supervisely and allows to easily switch between projects in applications.

Function signature

SelectProject(
    default_id=None,
    workspace_id=None,
    compact=False,
    allowed_types=[],
    show_label=True,
    size=None,
    widget_id=None,
)

Parameters

default_id

Determine Project will be selected by default.

type: int

default value: None

select_project = SelectProject(default_id=project_id)

workspace_id

Determine Workspace will be selected by default.

type: int

default value: None

select_project = SelectProject(workspace_id=workspace_id)

compact

Show only Project select.

type: bool

default value: false

select_project = SelectProject(default_id=project_id, workspace_id=workspace_id, compact=True)

allowed_types

List of project types witch will be available to select. Set one of available sly.ProjectTypes: IMAGES, VIDEOS, VOLUMES, POINT_CLOUDS, POINT_CLOUD_EPISODES.

type: List[ProjectType]

default value: []

show_label

Determine show text Project on widget or not. This parameter only affects when parameter compact is True.

type: bool

default value: True

select_project = SelectProject(
    default_id=project_id, workspace_id=workspace_id, compact=True, show_label=False
)

size

Size of input.

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

default value: None

select_project = SelectProject(
    default_id=project_id, workspace_id=workspace_id, compact=True, show_label=False
)
select_mini = SelectProject(
    default_id=project_id, workspace_id=workspace_id, compact=True, show_label=False, size="mini"
)
select_small = SelectProject(
    default_id=project_id, workspace_id=workspace_id, compact=True, show_label=False, size="small"
)
select_large = SelectProject(
    default_id=project_id, workspace_id=workspace_id, compact=True, show_label=False, size="large"
)
card = Card(
    title="Select Project",
    content=Container(widgets=[select_project, select_mini, select_small, select_large]),
)

widget_id

ID of the widget.

type: str

default value: None

Methods and attributes

Mini App Example

You can find this example in our Github repository:

ui-widgets-demos/selection/004_select_project/src/main.py

Import libraries

import os

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

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 workspace_id

workspace_id = sly.env.workspace_id()
project_id = sly.env.project_id()

Initialize SelectProject widget

select_project = SelectProject(
    default_id=project_id,
    workspace_id=workspace_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 Project",
    content=Container(widgets=[select_project]),
)

layout = Container(widgets=[card])

Create app using layout

Create an app object with layout parameter.

app = sly.Application(layout=layout)

Last updated