コード例 #1
0
class CmdConfig(CmdBaseNoRepo):
    def __init__(self, args):
        super().__init__(args)

        self.config = Config(validate=False)

    def run(self):
        section, opt = self.args.name.lower().strip().split(".", 1)

        if self.args.unset:
            self.config.unset(section, opt, level=self.args.level)
        elif self.args.value is None:
            logger.info(self.config.get(section, opt, level=self.args.level))
        else:
            self.config.set(section,
                            opt,
                            self.args.value,
                            level=self.args.level)

        is_write = self.args.unset or self.args.value is not None
        if is_write and self.args.name == "cache.type":
            logger.warning(
                "You have changed the 'cache.type' option. This doesn't update"
                " any existing workspace file links, but it can be done with:"
                "\n             dvc checkout --relink")

        return 0
コード例 #2
0
ファイル: config.py プロジェクト: yk/dvc
class CmdConfig(CmdBaseNoRepo):
    def __init__(self, args):
        super(CmdConfig, self).__init__(args)

        self.config = Config(validate=False)

    def run(self):
        section, opt = self.args.name.lower().strip().split(".", 1)

        if self.args.unset:
            self.config.unset(section, opt, level=self.args.level)
        elif self.args.value is None:
            logger.info(self.config.get(section, opt, level=self.args.level))
        else:
            self.config.set(section,
                            opt,
                            self.args.value,
                            level=self.args.level)

        return 0
コード例 #3
0
class CmdConfig(CmdBase):
    def __init__(self, args):
        from dvc.project import Project, NotDvcProjectError

        self.args = args

        try:
            dvc_dir = os.path.join(Project.find_root(), Project.DVC_DIR)
            saved_exc = None
        except NotDvcProjectError as exc:
            dvc_dir = None
            saved_exc = exc

        self.config = Config(dvc_dir, validate=False)
        if self.args.system:
            self.configobj = self.config._system_config
        elif self.args.glob:
            self.configobj = self.config._global_config
        elif self.args.local:
            if dvc_dir is None:
                raise saved_exc
            self.configobj = self.config._local_config
        else:
            if dvc_dir is None:
                raise saved_exc
            self.configobj = self.config._project_config

    def run_cmd(self):
        return self.run()

    def _unset(self, section, opt=None, configobj=None):
        if configobj is None:
            configobj = self.configobj

        try:
            self.config.unset(configobj, section, opt)
            self.config.save(configobj)
        except DvcException:
            logger.error("failed to unset '{}'".format(self.args.name))
            return 1
        return 0

    def _show(self, section, opt):
        try:
            self.config.show(self.configobj, section, opt)
        except DvcException:
            logger.error("failed to show '{}'".format(self.args.name))
            return 1
        return 0

    def _set(self, section, opt, value):
        try:
            self.config.set(self.configobj, section, opt, value)
            self.config.save(self.configobj)
        except DvcException:
            logger.error("failed to set '{}.{}' to '{}'".format(
                section, opt, value))
            return 1
        return 0

    def run(self):
        section, opt = self.args.name.lower().strip().split(".", 1)

        if self.args.unset:
            return self._unset(section, opt)
        elif self.args.value is None:
            return self._show(section, opt)
        else:
            return self._set(section, opt, self.args.value)