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_resultsClasses
- 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 gitclass 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- 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 gitdef 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 gitdef 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 gitdef 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))