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.self
is explicitly positional-only to allowself
as 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_results
Constants
Config
client : Client
color : str
created_by : int
description : Optional[str]
id : int
is_personal : bool
model_computed_fields
model_config
model_fields
title : 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))