class DatabaseEntry(models.Base): host = StringField(required=True) alias = StringField() @property def health_alias(self): return '__health__' + self.alias
class Pet(models.Base): id = IntField() category = EmbeddedField(Category) name = StringField() photo_urls = ListField(str) tags = ListField(Tag) status = StringField()
class ReportStatsOptionResponse(Base): supported = BoolField(default=True) enabled = BoolField() enabled_time = DateTimeField(nullable=True) enabled_version = StringField(nullable=True) enabled_user = StringField(nullable=True) current_version = StringField()
class CloneRequest(TaskRequest): new_task_name = StringField() new_task_comment = StringField() new_task_tags = ListField([str]) new_task_system_tags = ListField([str]) new_task_parent = StringField() new_task_project = StringField() execution_overrides = DictField()
class StatusReportRequest(WorkerRequest): task = StringField() # task the worker is running on queue = StringField() # queue from which task was taken queues = ListField( str ) # list of queues this worker listens to. if None, this will not update the worker's queues list. timestamp = IntField(required=True) machine_stats = EmbeddedField(MachineStats)
class CloneRequest(TaskRequest): new_task_name = StringField() new_task_comment = StringField() new_task_tags = ListField([str]) new_task_system_tags = ListField([str]) new_task_parent = StringField() new_task_project = StringField() execution_overrides = DictField() validate_references = BoolField(default=False)
class LogEventsScrollState(Base, JsonSerializableMixin): id: str = StringField(required=True) task: str = StringField(required=True) last_min_timestamp: Optional[int] = IntField() last_max_timestamp: Optional[int] = IntField() def reset(self): """Reset the scrolling state """ self.last_min_timestamp = self.last_max_timestamp = None
class Artifact(models.Base): key = StringField(required=True) type = StringField(required=True) mode = StringField(validators=Enum("input", "output"), default="output") uri = StringField() hash = StringField() content_size = IntField() timestamp = IntField() type_data = EmbeddedField(ArtifactTypeData) display_data = ListField([list])
class Artifact(models.Base): key = StringField(required=True) type = StringField(required=True) mode = StringField(validators=Enum(*get_options(ArtifactModes)), default=DEFAULT_ARTIFACT_MODE) uri = StringField() hash = StringField() content_size = IntField() timestamp = IntField() type_data = EmbeddedField(ArtifactTypeData) display_data = ListField([list])
class MetricScrollState(Base): task: str = StringField(required=True) name: str = StringField(required=True) last_min_iter: Optional[int] = IntField() last_max_iter: Optional[int] = IntField() timestamp: int = IntField(default=0) variants: Sequence[VariantScrollState] = ListField([VariantScrollState]) def reset(self): """Reset the scrolling state for the metric""" self.last_min_iter = self.last_max_iter = None
class WorkerEntry(Base, JsonSerializableMixin): key = StringField() # not required due to migration issues id = StringField(required=True) user = EmbeddedField(IdNameEntry) company = EmbeddedField(IdNameEntry) ip = StringField() task = EmbeddedField(IdNameEntry) queue = StringField() # queue from which current task was taken queues = ListField(str) # list of queues this worker listens to register_time = DateTimeField(required=True) register_timeout = IntField(required=True) last_activity_time = DateTimeField(required=True) last_report_time = DateTimeField()
class CloneRequest(TaskRequest): new_task_name = StringField() new_task_comment = StringField() new_task_tags = ListField([str]) new_task_system_tags = ListField([str]) new_task_parent = StringField() new_task_project = StringField() new_task_hyperparams = DictField() new_task_configuration = DictField() new_task_container = DictField() new_task_input_models = ListField([TaskInputModel]) execution_overrides = DictField() validate_references = BoolField(default=False) new_project_name = StringField()
class TaskEventsRequest(TaskEventsRequestBase): metrics: Sequence[MetricVariants] = ListField(items_types=MetricVariants) event_type: EventType = ActualEnumField(EventType, default=EventType.all) order: Optional[str] = ActualEnumField(LogOrderEnum, default=LogOrderEnum.asc) scroll_id: str = StringField() count_total: bool = BoolField(default=True)
class EditHyperParamsRequest(TaskUpdateRequest): hyperparams: Sequence[HyperParamItem] = ListField( [HyperParamItem], validators=Length(minimum_value=1)) replace_hyperparams = StringField( validators=Enum(*get_options(ReplaceHyperparams)), default=ReplaceHyperparams.none, )
class DebugImagesRequest(Base): metrics: Sequence[TaskMetric] = ListField( items_types=TaskMetric, validators=[Length(minimum_value=1)]) iters: int = IntField(default=1, validators=validators.Min(1)) navigate_earlier: bool = BoolField(default=True) refresh: bool = BoolField(default=False) scroll_id: str = StringField()
class ScalarMetricsIterRawRequest(TaskEventsRequestBase): batch_size: int = IntField() key: ScalarKeyEnum = ActualEnumField(ScalarKeyEnum, default=ScalarKeyEnum.iter) metric: MetricVariants = EmbeddedField(MetricVariants, required=True) count_total: bool = BoolField(default=False) scroll_id: str = StringField()
class TaskScrollState(Base): task: str = StringField(required=True) metrics: Sequence[MetricState] = ListField([MetricState], required=True) last_min_iter: Optional[int] = IntField() last_max_iter: Optional[int] = IntField() def reset(self): """Reset the scrolling state for the metric""" self.last_min_iter = self.last_max_iter = None
class DebugImageEventsScrollState(Base): id: str = StringField(required=True) metrics: Sequence[MetricScrollState] = ListField([MetricScrollState]) def to_json(self): return dumps(self.to_struct()) @classmethod def from_json(cls, s): return cls(**loads(s))
class WorkerEntry(Base): key = StringField() # not required due to migration issues id = StringField(required=True) user = EmbeddedField(IdNameEntry) company = EmbeddedField(IdNameEntry) ip = StringField() task = EmbeddedField(IdNameEntry) queue = StringField() # queue from which current task was taken queues = ListField(str) # list of queues this worker listens to register_time = DateTimeField(required=True) register_timeout = IntField(required=True) last_activity_time = DateTimeField(required=True) last_report_time = DateTimeField() def to_json(self): return json.dumps(self.to_struct()) @classmethod def from_json(cls, s): return cls(**json.loads(s))
class CreateRequest(Base): id = StringField(required=True) name = StringField(required=True) company = StringField(required=True) family_name = StringField() given_name = StringField() avatar = StringField()
class CreateUserRequest(Base): name = StringField(required=True) company = StringField(required=True) role = StringField( validators=Enum(*(set(get_options(Role)))), default=Role.user, ) email = StringField(required=True) family_name = StringField() given_name = StringField() avatar = StringField()
class DebugImageResponse(Base): metrics: Sequence[MetricEvents] = ListField(items_types=MetricEvents) scroll_id: str = StringField()
class MetricEvents(Base): task: str = StringField() metric: str = StringField() iterations: Sequence[IterationEvents] = ListField( items_types=IterationEvents)
class LogEventsRequest(Base): task: str = StringField(required=True) batch_size: int = IntField(default=500) navigate_earlier: bool = BoolField(default=True) from_timestamp: Optional[int] = IntField() order: Optional[str] = ActualEnumField(LogOrderEnum)
class TaskMetric(Base): task: str = StringField(required=True) metric: str = StringField(required=True)
class ScalarMetricsIterHistogramRequest(HistogramRequestBase): task: str = StringField(required=True)
class IdNameEntry(Base): id = StringField(required=True) name = StringField()
class WorkerRequest(Base): worker = StringField(required=True) tags = ListField(str)
class MetricCategory(Base): name = StringField() metric_keys = ListField(str)
class WorkerStatistics(Base): worker = StringField() metrics = ListField(MetricStats)