blob: 2dddf02b1305f8d3abc243e615108135d8e5e1d9 (
about) (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
|
# ---------------------------------------------------------
# Copyright (c) Microsoft Corporation. All rights reserved.
# ---------------------------------------------------------
from marshmallow import fields
from ..._schema import NestedField
from ..._schema.core.fields import DumpableEnumField, EnvironmentField
from ..._schema.job import ParameterizedCommandSchema, ParameterizedParallelSchema
from ..._schema.job.job_limits import CommandJobLimitsSchema
from .._schema.node import InternalBaseNodeSchema, NodeType
class CommandSchema(InternalBaseNodeSchema, ParameterizedCommandSchema):
class Meta:
exclude = ["code", "distribution"] # internal command doesn't have code & distribution
environment = EnvironmentField()
type = DumpableEnumField(allowed_values=[NodeType.COMMAND])
limits = NestedField(CommandJobLimitsSchema)
class DistributedSchema(CommandSchema):
class Meta:
exclude = ["code"] # need to enable distribution comparing to CommandSchema
type = DumpableEnumField(allowed_values=[NodeType.DISTRIBUTED])
class ParallelSchema(InternalBaseNodeSchema, ParameterizedParallelSchema):
class Meta:
# partition_keys can still be used with unknown warning, but need to do dump before setting
exclude = ["task", "input_data", "mini_batch_error_threshold", "partition_keys"]
type = DumpableEnumField(allowed_values=[NodeType.PARALLEL])
compute = fields.Str()
environment = fields.Str()
limits = NestedField(CommandJobLimitsSchema)
|