o
    wi                     @   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mZ d dlmZ d dlmZ ed	d
G dd deZdS )    )	dataclass)Path)Optional)io)ADAPTER_META_FILENAME)AdapterPath
AutoResume)logging)AppStateT)kw_onlyc                   @   sV   e Zd ZU dZdZee ed< dedee fddZ	ddee
j dee fd	d
ZdS )SpeechLMAutoResumezM
    Wrapper for AutoResume to get rid of requirement on restore_config.
    Nadapter_path
checkpointreturnc                 C   s^   | j rtd| j   tt| j |dS |t }| r+td|  t||dS t|S )NzUsing provided adapter path: base_model_pathzFound adapter meta file at )r   r	   infor   r   r   exists)selfr   adapter_meta_path r   c/home/ubuntu/sommelier/.venv/lib/python3.10/site-packages/nemo/collections/speechlm/utils/resume.py_maybe_get_adapter_path#   s   z*SpeechLMAutoResume._maybe_get_adapter_pathmodelc                 C   s   | j r(td| j   | | j }| s#td| j  d| j d| |S d }t }| j	|_
| j	r8|  }|rE| |}| rE|}|rY|t }| rUt||dS t|S d S )NzAttempting to resume from zProvided path z doesn't seem to contain a z dir.r   )resume_from_pathr	   r   get_weights_pathis_dir
ValueErrorWEIGHTS_PATHr   r
   resume_if_existsrestore_find_trainer_ckpt_pathr   r   r   r   )r   r   maybe_weights_pathr   	app_stater   r   r   r   get_trainer_ckpt_path/   s.   

z(SpeechLMAutoResume.get_trainer_ckpt_path)N)__name__
__module____qualname____doc__r   r   str__annotations__r   r   r   ConnectorMixinr$   r   r   r   r   r      s
   
 "r   N)dataclassesr   pathlibr   typingr   nemo.lightningr   %nemo.lightning.pytorch.callbacks.peftr   nemo.lightning.resumer   r   
nemo.utilsr	   nemo.utils.app_stater
   r   r   r   r   r   <module>   s   