Source code for beaker.data_model.group

from datetime import datetime
from typing import List, Optional, Tuple

from .account import Account
from .base import BaseModel, BasePage, StrEnum
from .workspace import WorkspaceRef

__all__ = [
    "Group",
    "GroupSpec",
    "GroupParameterType",
    "GroupParameter",
    "GroupPatch",
    "GroupsPage",
    "GroupSort",
]


[docs]class Group(BaseModel): id: str name: Optional[str] = None full_name: Optional[str] = None owner: Account author: Account created: datetime modified: datetime workspace_ref: Optional[WorkspaceRef] = None description: Optional[str] = None @property def workspace(self) -> Optional[WorkspaceRef]: return self.workspace_ref
class GroupSpec(BaseModel): workspace: Optional[str] = None name: Optional[str] = None description: Optional[str] = None experiments: Optional[List[str]] = None class GroupParameterType(StrEnum): metric = "metric" env = "env" class GroupParameter(BaseModel): type: GroupParameterType name: str class GroupPatch(BaseModel): name: Optional[str] = None description: Optional[str] = None add_experiments: Optional[List[str]] = None remove_experiments: Optional[List[str]] = None parameters: Optional[List[GroupParameter]] = None class GroupsPage(BasePage[Group]): data: Tuple[Group, ...] class GroupSort(StrEnum): created = "created" modified = "modified" author = "author" group_name = "name" group_name_or_description = "nameOrDescription"