mirror of
https://github.com/Stone-Red-Code/dvc.git
synced 2026-11-02 07:18:25 +01:00
schema: provide a jsonschema for dvc.yaml (#4028)
* schema: provide a jsonschema for dvc.yaml * Update scripts/schema/dvc-yaml.json Co-authored-by: Ruslan Kuprieiev <[email protected]> * Update scripts/schema/dvc-yaml.json Co-authored-by: Ruslan Kuprieiev <[email protected]>
This commit is contained in:
co-authored by
Ruslan Kuprieiev
parent
584c97a58d
commit
9e7dc2640e
@@ -0,0 +1,227 @@
|
||||
{
|
||||
"$schema": "http://json-schema.org/draft-07/schema#",
|
||||
"$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": false
|
||||
},
|
||||
"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"
|
||||
]
|
||||
}
|
||||
Reference in New Issue
Block a user