source code Browse git
from typing import Optional
from pydantic import BaseModel
from .client import Client
from .users import User
class Workspace(BaseModel):
id: int
title: str
description: Optional[str] = ''
color: str
is_personal: bool
created_by: int
client: Client
class Config:
arbitrary_types_allowed = True
def add_user(self, user: User):
"""Add user to workspace
Parameters
----------
user: label_studio_sdk.users.User
User
"""
response = self.client.make_request(
"POST",
f"/api/workspaces/{self.id}/memberships",
json={"workspace": self.id, "user": user.id},
)
return response.json()
def remove_user(self, user: User):
"""Remove user from workspace
Parameters
----------
user: label_studio_sdk.users.User
User
"""
response = self.client.make_request(
"DELETE",
f"/api/workspaces/{self.id}/memberships",
json={"workspace": self.id, "user": user.id},
)
if response.status_code != 204:
raise ValueError(str(response.content))
def get_projects(self):
"""Get projects in current workspace
Returns
-------
projects: list of label_studio_sdk.project.Project
Project
"""
from .project import Project
final_results = []
response = self.client.make_request(
"GET", f"/api/workspaces/{self.id}/projects"
)
projects = response.json()
for project_data in projects:
project_id = project_data["id"]
final_results.append(
Project.get_from_id(
client=self.client,
project_id=project_id,
)
)
return final_results
Classes
class Workspace (**data: Any)-
Usage docs: https://docs.pydantic.dev/2.7/concepts/models/
A base class for creating Pydantic models.
Attributes
__class_vars__- The names of classvars defined on the model.
__private_attributes__- Metadata about the private attributes of the model.
__signature__- The signature for instantiating the model.
__pydantic_complete__- Whether model building is completed, or if there are still undefined fields.
__pydantic_core_schema__- The pydantic-core schema used to build the SchemaValidator and SchemaSerializer.
__pydantic_custom_init__- Whether the model has a custom
__init__function. __pydantic_decorators__- Metadata containing the decorators defined on the model.
This replaces
Model.__validators__andModel.__root_validators__from Pydantic V1. __pydantic_generic_metadata__- Metadata for generic models; contains data used for a similar purpose to args, origin, parameters in typing-module generics. May eventually be replaced by these.
__pydantic_parent_namespace__- Parent namespace of the model, used for automatic rebuilding of models.
__pydantic_post_init__- The name of the post-init method for the model, if defined.
__pydantic_root_model__- Whether the model is a
RootModel. __pydantic_serializer__- The pydantic-core SchemaSerializer used to dump instances of the model.
__pydantic_validator__- The pydantic-core SchemaValidator used to validate instances of the model.
__pydantic_extra__- An instance attribute with the values of extra fields from validation when
model_config['extra'] == 'allow'. __pydantic_fields_set__- An instance attribute with the names of fields explicitly set.
__pydantic_private__- Instance attribute with the values of private attributes set on the model instance.
Create a new model by parsing and validating input data from keyword arguments.
Raises [
ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.selfis explicitly positional-only to allowselfas a field name.source code Browse git
class Workspace(BaseModel): id: int title: str description: Optional[str] = '' color: str is_personal: bool created_by: int client: Client class Config: arbitrary_types_allowed = True def add_user(self, user: User): """Add user to workspace Parameters ---------- user: label_studio_sdk.users.User User """ response = self.client.make_request( "POST", f"/api/workspaces/{self.id}/memberships", json={"workspace": self.id, "user": user.id}, ) return response.json() def remove_user(self, user: User): """Remove user from workspace Parameters ---------- user: label_studio_sdk.users.User User """ response = self.client.make_request( "DELETE", f"/api/workspaces/{self.id}/memberships", json={"workspace": self.id, "user": user.id}, ) if response.status_code != 204: raise ValueError(str(response.content)) def get_projects(self): """Get projects in current workspace Returns ------- projects: list of label_studio_sdk.project.Project Project """ from .project import Project final_results = [] response = self.client.make_request( "GET", f"/api/workspaces/{self.id}/projects" ) projects = response.json() for project_data in projects: project_id = project_data["id"] final_results.append( Project.get_from_id( client=self.client, project_id=project_id, ) ) return final_resultsConstants
Configclient : Clientcolor : strcreated_by : intdescription : Optional[str]id : intis_personal : boolmodel_computed_fieldsmodel_configmodel_fieldstitle : str
Methods
def add_user(self, user: User)-
source code Browse git
def add_user(self, user: User): """Add user to workspace Parameters ---------- user: label_studio_sdk.users.User User """ response = self.client.make_request( "POST", f"/api/workspaces/{self.id}/memberships", json={"workspace": self.id, "user": user.id}, ) return response.json() def get_projects(self)-
source code Browse git
def get_projects(self): """Get projects in current workspace Returns ------- projects: list of label_studio_sdk.project.Project Project """ from .project import Project final_results = [] response = self.client.make_request( "GET", f"/api/workspaces/{self.id}/projects" ) projects = response.json() for project_data in projects: project_id = project_data["id"] final_results.append( Project.get_from_id( client=self.client, project_id=project_id, ) ) return final_results def remove_user(self, user: User)-
source code Browse git
def remove_user(self, user: User): """Remove user from workspace Parameters ---------- user: label_studio_sdk.users.User User """ response = self.client.make_request( "DELETE", f"/api/workspaces/{self.id}/memberships", json={"workspace": self.id, "user": user.id}, ) if response.status_code != 204: raise ValueError(str(response.content))