Last active
June 12, 2020 07:37
-
-
Save skshetry/1ac05f0e665bd9e8f04153c0f09208a3 to your computer and use it in GitHub Desktop.
Schema for `dvc.yaml`
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
"$schema": "http://json-schema.org/draft-07/schema#", | |
"$id": "https://github.com/iterative/dvc/blob/master/dvc-yaml.schema.json", | |
"$comment": "v0.1.0", | |
"title": "Pipeline Schema", | |
"description": "A dvc.yaml pipeline definition", | |
"type": "object", | |
"definitions": { | |
"OutputFlags": { | |
"type": "object", | |
"description": "Output file with more flags", | |
"properties": { | |
"cache": { | |
"description": "Cache outputs by dvc", | |
"type": "boolean", | |
"default": true | |
}, | |
"persist": { | |
"description": "Persist outputs among runs", | |
"type": "boolean", | |
"default": false | |
} | |
} | |
}, | |
"PlotFlags": { | |
"description": "Plots file with more flags", | |
"allOf": [ | |
{ | |
"$ref": "#/definitions/OutputFlags" | |
} | |
], | |
"$comment": "Unfortunately, 'additionalProperties' only works props in immediate schema.", | |
"properties": { | |
"cache": {}, | |
"persist": {}, | |
"x": { | |
"description": "Default field name to use as x-axis data", | |
"type": [ | |
"string", | |
"integer" | |
] | |
}, | |
"y": { | |
"description": "Default field name to use as y-axis data", | |
"type": [ | |
"string", | |
"integer" | |
] | |
}, | |
"x_label": { | |
"description": "Default label for the x-axis", | |
"type": "string" | |
}, | |
"y_label": { | |
"description": "Default label for the y-axis", | |
"type": "string" | |
}, | |
"template": { | |
"description": "Default plot template", | |
"type": "string" | |
}, | |
"title": { | |
"description": "Default plot title", | |
"type": "string" | |
}, | |
"header": { | |
"description": "The target CSV or TSV has a header", | |
"type": "boolean", | |
"default": false | |
} | |
}, | |
"additionalProperties": false | |
}, | |
"Output": { | |
"description": "An output of the stage", | |
"anyOf": [ | |
{ | |
"type": "string", | |
"description": "Output will be cached by dvc" | |
}, | |
{ | |
"type": "object", | |
"description": "Output file", | |
"patternProperties": { | |
"^.*$": { | |
"$ref": "#/definitions/OutputFlags", | |
"additionalProperties": false | |
} | |
}, | |
"additionalProperties": false, | |
"maxProperties": 1 | |
} | |
] | |
} | |
}, | |
"properties": { | |
"stages": { | |
"description": "List of stages.", | |
"type": "object", | |
"patternProperties": { | |
"^[A-Za-z0-9_-]+$": { | |
"description": "The stage", | |
"type": "object", | |
"properties": { | |
"cmd": { | |
"type": "string", | |
"description": "Command to run" | |
}, | |
"wdir": { | |
"type": "string", | |
"description": "Working directory" | |
}, | |
"deps": { | |
"type": "array", | |
"description": "Dependencies for the stage", | |
"items": { | |
"type": "string", | |
"description": "A dependency for the stage" | |
}, | |
"minItems": 1, | |
"uniqueItems": true | |
}, | |
"params": { | |
"type": "array", | |
"description": "Params for the stage", | |
"items": { | |
"anyOf": [ | |
{ | |
"type": "string", | |
"description": "Params from default params file" | |
}, | |
{ | |
"type": "object", | |
"description": "Params from custom params file", | |
"patternProperties": { | |
"^.*$": { | |
"type": "array", | |
"description": "Custom params file", | |
"items": { | |
"type": "string", | |
"description": "Params from custom file" | |
}, | |
"minItems": 1, | |
"uniqueItems": true | |
} | |
}, | |
"additionalProperties": false, | |
"maxProperties": 1 | |
} | |
] | |
}, | |
"minItems": 1, | |
"uniqueItems": true | |
}, | |
"outs": { | |
"type": "array", | |
"description": "Outputs of the stage", | |
"items": { | |
"$ref": "#/definitions/Output" | |
}, | |
"minItems": 1, | |
"uniqueItems": true | |
}, | |
"metrics": { | |
"type": "array", | |
"description": "Metrics outputs of the stage", | |
"items": { | |
"$ref": "#/definitions/Output" | |
}, | |
"minItems": 1, | |
"uniqueItems": true | |
}, | |
"plots": { | |
"type": "array", | |
"description": "Plots outputs of the stage", | |
"items": { | |
"anyOf": [ | |
{ | |
"type": "string", | |
"description": "Plots will be cached by dvc" | |
}, | |
{ | |
"type": "object", | |
"description": "Output file", | |
"patternProperties": { | |
"^.*$": { | |
"$ref": "#/definitions/PlotFlags" | |
} | |
}, | |
"maxProperties": 1 | |
} | |
] | |
}, | |
"minItems": 1, | |
"uniqueItems": true | |
}, | |
"frozen": { | |
"type": "boolean", | |
"description": "Assume stage as unchanged", | |
"default": true | |
}, | |
"locked": { | |
"type": "boolean", | |
"description": "Assume stage as unchanged (deprecated)", | |
"default": false | |
}, | |
"always_changed": { | |
"type": "boolean", | |
"description": "Assume stage as always changed.", | |
"default": false | |
}, | |
"meta": { | |
"description": "Additional information/metadata" | |
} | |
}, | |
"additionalProperties": false, | |
"required": [ | |
"cmd" | |
] | |
} | |
}, | |
"additionalProperties": false | |
} | |
}, | |
"required": [ | |
"stages" | |
] | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment