def run_command()

in dynalab_cli/init.py [0:0]


    def run_command(self):
        if self.args.rename:
            if not self.config_handler.config_exists():
                raise RuntimeError(
                    f"Model {self.args.name} not found. "
                    f"Unable to rename a non-existing model. "
                )
            else:
                check_model_name(self.args.rename)
                if os.path.exists(
                    os.path.join(
                        self.work_dir, self.config_handler.dynalab_dir, self.args.rename
                    )
                ):
                    raise RuntimeError(
                        f"Model {self.args.rename} already exists. "
                        f"Unable to rename {self.args.name} to {self.args.rename}"
                    )
                else:
                    os.rename(
                        os.path.join(
                            self.work_dir,
                            self.config_handler.dynalab_dir,
                            self.args.name,
                        ),
                        os.path.join(
                            self.work_dir,
                            self.config_handler.dynalab_dir,
                            self.args.rename,
                        ),
                    )
                    print(f"Renamed model {self.args.name} to {self.args.rename}")
            return

        if self.args.amend:
            if not self.config_handler.config_exists():
                raise RuntimeError("Please run dynalab-cli init first")
            EDITOR = os.environ.get("EDITOR", "vim")
            subprocess.run([EDITOR, self.config_handler.config_path])
            try:
                print("Validating the updated config...")
                self.config_handler.validate_config()
            except AssertionError as e:
                raise RuntimeError(
                    f"Validation failed: {e}. "
                    "Please update this field with dynalab-cli init --amend"
                )
            return

        if self.config_handler.config_exists():
            ops = input(
                f"Folder {self.work_dir} already initialized for "
                f"model '{self.args.name}'. Overwrite? [Y/n] "
            )
            if ops.lower() not in ("y", "yes"):
                print(f"Aborting flow. Nothing was done.")
                exit(1)
        print(f"Initializing {self.work_dir} for dynalab model '{self.args.name}'...")

        self.initialize_field("task", self.args.task)
        self.initialize_field("checkpoint", self.args.model_checkpoint)
        self.initialize_field("handler", self.args.handler)
        self.initialize_field("requirements", self.args.install_requirements)
        self.initialize_field("setup", self.args.run_setup)
        self.initialize_field("model_files", self.args.model_files)
        self.initialize_field("exclude", self.args.exclude)

        self.config_handler.write_config(self.config)

        print("Done")