id = "dvc"
name = "DVC"
homepage = "https://dvc.org/"
description = "Manage data the way code is managed."
executables = ["dvc"]
[dotfiles]
paths = [
"~/.config/dvc/config",
"~/Library/Application Support/dvc/config",
"%LOCALAPPDATA%/iterative/dvc/config",
]
exclude = []
secret = []
[commands]
format = 1
label = "Data Version Control"
description = "Common DVC jobs: track data, push and pull it, and reproduce pipelines. Other subcommands (experiments, metrics, plots, remote setup) are not covered."
quality = "ai-draft"
parser = { end_of_options = "--", interleave = "permute", long_equals = true, short_attached = false, short_bundles = false }
[[commands.source]]
id = "help"
kind = "help"
url = "https://dvc.org/doc/command-reference"
revision = "dvc --help (installed)"
evidence = """
usage: dvc [-q | -v] [-h] [-V] [--cd <path>] [--wait-for-lock] command ...
--cd <path> Change to directory before executing.
"""
[[commands.field]]
id = "cd"
label = "Run in directory"
type = "path"
option = ["--cd"]
path = { kind = "directory", role = "input" }
sources = ["help"]
[[commands.group]]
id = "basic"
label = "Basic"
fields = ["cd"]
[[commands.subcommand]]
path = ["add"]
label = "Track data"
description = "Track files or directories with DVC. Remote upload, glob and relink options are left out."
[[commands.subcommand.source]]
id = "help"
kind = "help"
url = "https://dvc.org/doc/command-reference/add"
revision = "dvc --help (installed)"
evidence = """
usage: dvc add [-h] [-q | -v] [--no-commit] [--glob] [-o <path>] [--to-remote]
targets Input files/directories to add.
--no-commit Dont put files/directories into cache.
--glob Allows targets containing shell-style wildcards.
-o, --out <path> Destination path to put files to.
-f, --force Override local file or folder if exists.
"""
[[commands.subcommand.field]]
id = "targets"
label = "Files or directories"
type = "path"
position = 0
multiple = true
min = 1
path = { kind = "any", role = "input", must_exist = true }
sources = ["help"]
[[commands.subcommand.field]]
id = "no_commit"
label = "Do not put into cache"
type = "boolean"
option = ["--no-commit"]
sources = ["help"]
[[commands.subcommand.field]]
id = "glob"
label = "Targets are wildcards"
type = "boolean"
option = ["--glob"]
sources = ["help"]
[[commands.subcommand.field]]
id = "out"
label = "Destination path"
type = "path"
option = ["--out", "-o"]
path = { kind = "any", role = "output", must_exist = false }
sources = ["help"]
[[commands.subcommand.field]]
id = "force"
label = "Override existing"
type = "boolean"
option = ["--force", "-f"]
effect = "overwrite"
sources = ["help"]
[[commands.subcommand.task]]
id = "add"
label = "Track files"
fields = ["targets"]
required = ["targets"]
[[commands.subcommand.group]]
id = "basic"
label = "Basic"
fields = ["targets", "no_commit", "glob", "out", "force"]
[[commands.subcommand]]
path = ["push"]
label = "Upload to remote"
description = "Upload tracked data to remote storage. Run-cache and per-branch options are partly covered."
[[commands.subcommand.source]]
id = "help"
kind = "help"
url = "https://dvc.org/doc/command-reference/push"
revision = "dvc --help (installed)"
evidence = """
usage: dvc push [-h] [-q | -v] [-j <number>] [-r <name>] [-a] [-T] [-A] [-d]
targets Limit command scope to these tracked
-j, --jobs <number> Number of jobs to run simultaneously. The default
-r, --remote <name> Remote storage to push to
-a, --all-branches Push cache for all branches.
-T, --all-tags Push cache for all tags.
-A, --all-commits Push cache for all commits.
-d, --with-deps Push cache for all dependencies of the specified
-R, --recursive Push cache for subdirectories of specified directory.
"""
[[commands.subcommand.field]]
id = "targets"
label = "Targets"
description = "Limit to these tracked files, .dvc files or stage names. Leave empty for everything."
type = "string"
position = 0
multiple = true
sources = ["help"]
[[commands.subcommand.field]]
id = "remote"
label = "Remote name"
type = "string"
option = ["--remote", "-r"]
sources = ["help"]
[[commands.subcommand.field]]
id = "jobs"
label = "Parallel jobs"
type = "integer"
option = ["--jobs", "-j"]
sources = ["help"]
[[commands.subcommand.field]]
id = "all_branches"
label = "All branches"
type = "boolean"
option = ["--all-branches", "-a"]
sources = ["help"]
[[commands.subcommand.field]]
id = "all_tags"
label = "All tags"
type = "boolean"
option = ["--all-tags", "-T"]
sources = ["help"]
[[commands.subcommand.field]]
id = "all_commits"
label = "All commits"
type = "boolean"
option = ["--all-commits", "-A"]
sources = ["help"]
[[commands.subcommand.field]]
id = "with_deps"
label = "Include dependencies"
type = "boolean"
option = ["--with-deps", "-d"]
sources = ["help"]
[[commands.subcommand.field]]
id = "recursive"
label = "Recurse into directories"
type = "boolean"
option = ["--recursive", "-R"]
sources = ["help"]
[[commands.subcommand.task]]
id = "push"
label = "Push everything"
fields = ["remote"]
required = []
[[commands.subcommand.group]]
id = "basic"
label = "Basic"
fields = ["targets", "remote", "jobs"]
[[commands.subcommand.group]]
id = "advanced"
label = "Advanced"
fields = ["all_branches", "all_tags", "all_commits", "with_deps", "recursive"]
[[commands.subcommand]]
path = ["pull"]
label = "Download from remote"
description = "Download tracked data from remote storage into the workspace."
[[commands.subcommand.source]]
id = "help"
kind = "help"
url = "https://dvc.org/doc/command-reference/pull"
revision = "dvc --help (installed)"
evidence = """
usage: dvc pull [-h] [-q | -v] [-j <number>] [-r <name>] [-a] [-T] [-A] [-f]
targets Limit command scope to these tracked
-j, --jobs <number> Number of jobs to run simultaneously. The default
-r, --remote <name> Remote storage to pull from
-a, --all-branches Fetch cache for all branches.
-T, --all-tags Fetch cache for all tags.
-A, --all-commits Fetch cache for all commits.
-f, --force Do not prompt when removing working directory files.
-d, --with-deps Fetch cache for all dependencies of the specified
-R, --recursive Pull cache for subdirectories of the specified
"""
[[commands.subcommand.field]]
id = "targets"
label = "Targets"
description = "Limit to these tracked files, .dvc files or stage names. Leave empty for everything."
type = "string"
position = 0
multiple = true
sources = ["help"]
[[commands.subcommand.field]]
id = "remote"
label = "Remote name"
type = "string"
option = ["--remote", "-r"]
sources = ["help"]
[[commands.subcommand.field]]
id = "jobs"
label = "Parallel jobs"
type = "integer"
option = ["--jobs", "-j"]
sources = ["help"]
[[commands.subcommand.field]]
id = "all_branches"
label = "All branches"
type = "boolean"
option = ["--all-branches", "-a"]
sources = ["help"]
[[commands.subcommand.field]]
id = "all_tags"
label = "All tags"
type = "boolean"
option = ["--all-tags", "-T"]
sources = ["help"]
[[commands.subcommand.field]]
id = "all_commits"
label = "All commits"
type = "boolean"
option = ["--all-commits", "-A"]
sources = ["help"]
[[commands.subcommand.field]]
id = "with_deps"
label = "Include dependencies"
type = "boolean"
option = ["--with-deps", "-d"]
sources = ["help"]
[[commands.subcommand.field]]
id = "recursive"
label = "Recurse into directories"
type = "boolean"
option = ["--recursive", "-R"]
sources = ["help"]
[[commands.subcommand.field]]
id = "force"
label = "Do not prompt before removing"
type = "boolean"
option = ["--force", "-f"]
effect = "delete"
sources = ["help"]
[[commands.subcommand.task]]
id = "pull"
label = "Pull everything"
fields = ["remote"]
required = []
[[commands.subcommand.group]]
id = "basic"
label = "Basic"
fields = ["targets", "remote", "jobs"]
[[commands.subcommand.group]]
id = "advanced"
label = "Advanced"
fields = ["all_branches", "all_tags", "all_commits", "with_deps", "recursive", "force"]
[[commands.subcommand]]
path = ["repro"]
label = "Reproduce pipeline"
description = "Run the stages in dvc.yaml that are out of date."
[[commands.subcommand.source]]
id = "help"
kind = "help"
url = "https://dvc.org/doc/command-reference/repro"
revision = "dvc --help (installed)"
evidence = """
usage: dvc repro [-h] [-q | -v] [-f] [-i] [-s] [-p] [-P] [-R] [--downstream]
targets Stages to reproduce. dvc.yaml by default.
-f, --force Reproduce even if dependencies were not changed.
-i, --interactive Ask for confirmation before reproducing each stage.
-s, --single-item Reproduce only single data item without recursive
-p, --pipeline Reproduce the whole pipeline that the specified targets
-P, --all-pipelines Reproduce all pipelines in the repo.
--downstream Start from the specified stages when reproducing
--pull Try automatically pulling missing data.
--dry Only print the commands that would be executed without
"""
[[commands.subcommand.field]]
id = "targets"
label = "Stages"
description = "Stage names or dvc.yaml paths. Leave empty for dvc.yaml."
type = "string"
position = 0
multiple = true
sources = ["help"]
[[commands.subcommand.field]]
id = "force"
label = "Force"
description = "Reproduce even if dependencies were not changed."
type = "boolean"
option = ["--force", "-f"]
sources = ["help"]
[[commands.subcommand.field]]
id = "interactive"
label = "Confirm each stage"
type = "boolean"
option = ["--interactive", "-i"]
sources = ["help"]
[[commands.subcommand.field]]
id = "single_item"
label = "Single item only"
type = "boolean"
option = ["--single-item", "-s"]
sources = ["help"]
[[commands.subcommand.field]]
id = "pipeline"
label = "Whole pipeline"
type = "boolean"
option = ["--pipeline", "-p"]
sources = ["help"]
[[commands.subcommand.field]]
id = "all_pipelines"
label = "All pipelines"
type = "boolean"
option = ["--all-pipelines", "-P"]
sources = ["help"]
[[commands.subcommand.field]]
id = "downstream"
label = "Start from the given stages"
type = "boolean"
option = ["--downstream"]
sources = ["help"]
[[commands.subcommand.field]]
id = "pull"
label = "Pull missing data"
type = "boolean"
option = ["--pull"]
sources = ["help"]
[[commands.subcommand.field]]
id = "dry"
label = "Dry run"
description = "Only print the commands that would be executed."
type = "boolean"
option = ["--dry"]
sources = ["help"]
[[commands.subcommand.task]]
id = "repro"
label = "Reproduce the pipeline"
fields = ["targets"]
required = []
[[commands.subcommand.task]]
id = "dry"
label = "Preview what would run"
fields = ["targets", "dry"]
required = ["dry"]
set = { dry = [true] }
[[commands.subcommand.group]]
id = "basic"
label = "Basic"
fields = ["targets", "force", "dry", "pull"]
[[commands.subcommand.group]]
id = "advanced"
label = "Advanced"
fields = ["interactive", "single_item", "pipeline", "all_pipelines", "downstream"]