mirror of
https://github.com/Stone-Red-Code/dvc.git
synced 2026-11-08 07:18:27 +01:00
* dvc: refactor config
Advantages:
- read like a dict
- modify as a dict for testing or manipulation purposes
- wrap modifications into context manager to save them:
with config.edit("local") as conf:
conf["core"]["remote"] = "new-default"
Design decisions:
- dropped string constants
- remote sections are parsed into a simple subdict upon load
- remote config schema is now defined by url scheme
- relative paths are handled transparently upon load/save
- user config and remote manipulations are moved to commands
- same dev manipulations are done by simply modifying a config dict
* test: do not set cache.type for remotes that doesn't support it
* dvc: fix windows absolute paths validation in config
* test: fix windows separate drive test
* dvc: stylistic fixes in config
60 lines
1.8 KiB
Python
60 lines
1.8 KiB
Python
import argparse
|
|
|
|
from dvc.command.base import append_doc_link, fix_subparsers
|
|
from dvc.command.config import CmdConfig
|
|
|
|
|
|
class CmdCacheDir(CmdConfig):
|
|
def run(self):
|
|
with self.config.edit(level=self.args.level) as edit:
|
|
edit["cache"]["dir"] = self.args.value
|
|
return 0
|
|
|
|
|
|
def add_parser(subparsers, parent_parser):
|
|
from dvc.command.config import parent_config_parser
|
|
|
|
CACHE_HELP = "Manage cache settings."
|
|
|
|
cache_parser = subparsers.add_parser(
|
|
"cache",
|
|
parents=[parent_parser],
|
|
description=append_doc_link(CACHE_HELP, "cache"),
|
|
help=CACHE_HELP,
|
|
formatter_class=argparse.RawDescriptionHelpFormatter,
|
|
)
|
|
|
|
cache_subparsers = cache_parser.add_subparsers(
|
|
dest="cmd",
|
|
help="Use `dvc cache CMD --help` for command-specific " "help.",
|
|
)
|
|
|
|
fix_subparsers(cache_subparsers)
|
|
|
|
parent_cache_config_parser = argparse.ArgumentParser(
|
|
add_help=False, parents=[parent_config_parser]
|
|
)
|
|
CACHE_DIR_HELP = "Configure cache directory location."
|
|
|
|
cache_dir_parser = cache_subparsers.add_parser(
|
|
"dir",
|
|
parents=[parent_parser, parent_cache_config_parser],
|
|
description=append_doc_link(CACHE_HELP, "cache/dir"),
|
|
help=CACHE_DIR_HELP,
|
|
formatter_class=argparse.RawDescriptionHelpFormatter,
|
|
)
|
|
cache_dir_parser.add_argument(
|
|
"-u",
|
|
"--unset",
|
|
default=False,
|
|
action="store_true",
|
|
help="Unset option.",
|
|
)
|
|
cache_dir_parser.add_argument(
|
|
"value",
|
|
help="Path to cache directory. Relative paths are resolved relative "
|
|
"to the current directory and saved to config relative to the "
|
|
"config file location.",
|
|
)
|
|
cache_dir_parser.set_defaults(func=CmdCacheDir)
|