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() execution_overrides = DictField() validate_references = BoolField(default=False) new_project_name = StringField()
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) project = 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() tags = ListField(str)
class CreateModelRequest(models.Base): name = fields.StringField(required=True) uri = fields.StringField(required=True) labels = DictField(value_types=string_types + (int, )) tags = ListField(items_types=string_types) system_tags = ListField(items_types=string_types) comment = fields.StringField() public = fields.BoolField(default=False) project = fields.StringField() parent = fields.StringField() framework = fields.StringField() design = DictField() ready = fields.BoolField(default=True) ui_cache = DictField() task = fields.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 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 EditHyperParamsRequest(TaskUpdateRequest): hyperparams: Sequence[HyperParamItem] = ListField( [HyperParamItem], validators=Length(minimum_value=1)) replace_hyperparams = StringField( validators=Enum(*get_options(ReplaceHyperparams)), default=ReplaceHyperparams.none, )
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 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 MultiTaskScalarMetricsIterHistogramRequest(HistogramRequestBase): tasks: Sequence[str] = ListField( items_types=str, validators=[ Length( minimum_value=1, maximum_value=config.get( "services.tasks.multi_task_histogram_limit", 10), ) ], )
class MachineStats(Base): cpu_usage = ListField(six.integer_types + (float, )) cpu_temperature = ListField(six.integer_types + (float, )) gpu_usage = ListField(six.integer_types + (float, )) gpu_temperature = ListField(six.integer_types + (float, )) gpu_memory_free = ListField(six.integer_types + (float, )) gpu_memory_used = ListField(six.integer_types + (float, )) memory_used = FloatField() memory_free = FloatField() network_tx = FloatField() network_rx = FloatField() disk_free_home = FloatField() disk_free_temp = FloatField() disk_read = FloatField() disk_write = FloatField()
class MetricCategory(Base): name = StringField() metric_keys = ListField(str)
class GetStatsResponse(Base): workers = ListField(WorkerStatistics)
class WorkerStatistics(Base): worker = StringField() metrics = ListField(MetricStats)
class MetricStats(Base): metric = StringField() variant = StringField() dates = ListField(int) stats = ListField(AggregationStats)
class WorkerRequest(Base): worker = StringField(required=True) tags = ListField(str)
class MetricVariants(Base): metric: str = StringField(required=True) variants: Sequence[str] = ListField(items_types=str)
class ProjectTagsRequest(TagsRequest): projects = ListField(str)
class AddOrUpdateMetadata(Base): metadata: Sequence[MetadataItem] = ListField( [MetadataItem], validators=validators.Length(minimum_value=1) )
class DeleteMetadata(Base): keys: Sequence[str] = ListField(str, validators=validators.Length(minimum_value=1))
class StartPipelineRequest(models.Base): task = fields.StringField(required=True) queue = fields.StringField(required=True) args = ListField(Arg)
class ScalarMetricsIterHistogramRequest(HistogramRequestBase): task: str = StringField(required=True) metrics: Sequence[MetricVariants] = ListField(items_types=MetricVariants)
class GetMetricKeysResponse(Base): categories = ListField(MetricCategory)
class ActivityReportSeries(Base): dates = ListField(int) counts = ListField(int)
class GetStatsRequest(StatsReportBase): items = ListField(StatItem, required=True, validators=validators.Length(minimum_value=1)) split_by_variant = BoolField(default=False)
class RegisterRequest(WorkerRequest): timeout = make_default(IntField, DEFAULT_TIMEOUT)( ) # registration timeout in seconds (default is 10min) queues = ListField( six.string_types) # list of queues this worker listens to
class AggregationStats(Base): aggregation = EnumField(AggregationType) values = ListField(float)
class GetAllResponse(Base): workers = ListField(WorkerResponseEntry)
class TaskMetric(Base): task: str = StringField(required=True) metric: str = StringField(default=None) variants: Sequence[str] = ListField(items_types=str)
class WorkerResponseEntry(WorkerEntry): task = EmbeddedField(CurrentTaskEntry) queue = EmbeddedField(QueueEntry) queues = ListField(QueueEntry)
class StatsBase(Base): worker_ids = ListField(str)