source code Browse git
from datetime import datetime
from enum import Enum
from typing import List, Optional
from pydantic import BaseModel, Field
from .client import Client
class UserRole(Enum):
ANNOTATOR = "AN"
REVIEWER = "RE"
MANAGER = "MA"
ADMINISTRATOR = "AD"
OWNER = "OW"
NOT_ACTIVATED = "NO"
DISABLED = "DI"
class OrgMembership(BaseModel):
role: UserRole
active: bool
organization_id: int
class User(BaseModel):
id: int
first_name: str
last_name: str
username: str
email: str
last_activity: datetime
initials: str
phone: str
active_organization: Optional[int] = None
org_membership: Optional[List[OrgMembership]] = Field(default_factory=list)
client: Client
class Config:
arbitrary_types_allowed = True
def set_role(self, role: UserRole):
"""Set user role in current active organization
Parameters
----------
role: label_studio_sdk.users.UserRole
User role
"""
response = self.client.make_request(
"PATCH",
f"/api/organizations/{self.active_organization}/memberships",
json={"user_id": self.id, "role": role.value},
)
for membership in self.org_membership:
if membership.organization_id == self.active_organization:
membership.role = UserRole
return response
Classes
class OrgMembership (**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 OrgMembership(BaseModel): role: UserRole active: bool organization_id: intConstants
active : boolmodel_computed_fieldsmodel_configmodel_fieldsorganization_id : introle : UserRole
class User (**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 User(BaseModel): id: int first_name: str last_name: str username: str email: str last_activity: datetime initials: str phone: str active_organization: Optional[int] = None org_membership: Optional[List[OrgMembership]] = Field(default_factory=list) client: Client class Config: arbitrary_types_allowed = True def set_role(self, role: UserRole): """Set user role in current active organization Parameters ---------- role: label_studio_sdk.users.UserRole User role """ response = self.client.make_request( "PATCH", f"/api/organizations/{self.active_organization}/memberships", json={"user_id": self.id, "role": role.value}, ) for membership in self.org_membership: if membership.organization_id == self.active_organization: membership.role = UserRole return responseConstants
Configactive_organization : Optional[int]client : Clientemail : strfirst_name : strid : intinitials : strlast_activity : datetime.datetimelast_name : strmodel_computed_fieldsmodel_configmodel_fieldsorg_membership : Optional[List[OrgMembership]]phone : strusername : str
Methods
def set_role(self, role: UserRole)-
source code Browse git
def set_role(self, role: UserRole): """Set user role in current active organization Parameters ---------- role: label_studio_sdk.users.UserRole User role """ response = self.client.make_request( "PATCH", f"/api/organizations/{self.active_organization}/memberships", json={"user_id": self.id, "role": role.value}, ) for membership in self.org_membership: if membership.organization_id == self.active_organization: membership.role = UserRole return response
class UserRole (value, names=None, *, module=None, qualname=None, type=None, start=1)-
An enumeration.
source code Browse git
class UserRole(Enum): ANNOTATOR = "AN" REVIEWER = "RE" MANAGER = "MA" ADMINISTRATOR = "AD" OWNER = "OW" NOT_ACTIVATED = "NO" DISABLED = "DI"Constants
ADMINISTRATORANNOTATORDISABLEDMANAGERNOT_ACTIVATEDOWNERREVIEWER