o
    ̳id                     @   sF   d dl Z d dlmZ d dlmZ d dlmZmZ deddfddZdS )	    N)
DictConfig)ConfigError)_get_component_from_path_has_componentcfgreturnc                 C   s   g }|   D ]Z\}}t|r`zt|d}dd |  D }t|}|jdi | W q ty_ } z&dt|v rD|j	di | nt|j
 dt| }|| W Y d}~qd}~ww q|rgt|dS )z
    Ensure that all components in the config can be instantiated correctly

    Args:
        cfg (DictConfig): The config to validate

    Raises:
        ConfigError: If any component cannot be instantiated
    _component_c                 S   s   i | ]\}}|d kr||qS )r    ).0kvr	   r	   N/home/ubuntu/.local/lib/python3.10/site-packages/torchtune/config/_validate.py
<dictcomp>   s    zvalidate.<locals>.<dictcomp>zmissing a required argument Nr	   )itemsr   r   getinspect	signaturebind	TypeErrorstrbind_partial__name__appendr   )r   errorsnodenodedictr   kwargssiger	   r	   r   validate   s&   

r    )	r   	omegaconfr   torchtune.config._errorsr   torchtune.config._utilsr   r   r    r	   r	   r	   r   <module>   s
   