def _parse_config()

in src/autotrain/parser.py [0:0]


    def _parse_config(self):
        params = {
            "model": self.config["base_model"],
            "project_name": self.config["project_name"],
        }

        params["data_path"] = self.config["data"]["path"]

        if self.task == "lm_training":
            params["chat_template"] = self.config["data"]["chat_template"]
            if "-" in self.config["task"]:
                params["trainer"] = self.config["task"].split("-")[1]
                if params["trainer"] == "generic":
                    params["trainer"] = "default"
                if params["trainer"] not in ["sft", "orpo", "dpo", "reward", "default"]:
                    raise ValueError("Invalid LLM training task")

        if self.task == "sentence_transformers":
            params["trainer"] = self.config["task"].split(":")[1]

        if self.task == "vlm":
            params["trainer"] = self.config["task"].split(":")[1]

        for k, v in self.config["data"]["column_mapping"].items():
            params[k] = v
        params["train_split"] = self.config["data"]["train_split"]
        params["valid_split"] = self.config["data"]["valid_split"]
        params["log"] = self.config["log"]

        if "hub" in self.config:
            params["username"] = self.config["hub"]["username"]
            params["token"] = self.config["hub"]["token"]
            params["push_to_hub"] = self.config["hub"]["push_to_hub"]
        else:
            params["username"] = None
            params["token"] = None
            params["push_to_hub"] = False

        if params["username"]:
            if params["username"].startswith("${"):
                params["username"] = os.environ.get(params["username"][2:-1])

        if params["token"]:
            if params["token"].startswith("${"):
                params["token"] = os.environ.get(params["token"][2:-1])

        other_params = self.config.get("params")
        if other_params:
            params.update(other_params)

        return params