o
    ॵi                     @   s   d dl mZ d dlmZ d dlmZ d dlmZ d dlm	Z	 d dl
mZ d dlmZmZ d dlmZmZ ed	Zejd
fdedefddZd
S )    )Trainers)normalize_model_input)is_official_hub_path)check_config)DEFAULT_MODEL_REVISION)read_config)register_modelhub_reporegister_plugins_repo)Registrybuild_from_cfgtrainersNnamedefault_argsc                 C   s   t | d}|dd}|dt}t|ts"t|trPt|d trPt||drPt|tr3t||dnt|d |d}t||}t	|
d t||dd	 t|t|d
S )z build trainer given a trainer name

    Args:
        name (str, optional):  Trainer name, if None, default trainer
            will be used.
        default_args (dict, optional): Default initialization arguments.
    )typemodelNmodel_revisionr   )revisionpluginsallow_remoteF)r   )dictgetr   
isinstancestrlistr   r   r   r	   safe_getr   r   TRAINERS)r   r   cfgr   r   configuration	model_dir r   O/home/ubuntu/.local/lib/python3.10/site-packages/modelscope/trainers/builder.pybuild_trainer   s2   



r!   )modelscope.metainfor   modelscope.pipelines.builderr   modelscope.pipelines.utilr   modelscope.utils.configr   modelscope.utils.constantr   modelscope.utils.hubr   modelscope.utils.pluginsr   r	   modelscope.utils.registryr
   r   r   defaultr   r   r!   r   r   r   r    <module>   s   