o
    si                     @   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 d d	lmZ d d
lmZ d dlmZ d dlmZmZ g dZdd Zdd ZdS )   )	BaseModel)
ConvTasNet)DCCRNet)DCUNet)DPRNNTasNet)SuDORMRFImprovedNetSuDORMRFNet)DPTNet)	FasNetTAC)
LSTMTasNet)DeMask)XUMX)save_publishableupload_publishable)r   r   r   r   r	   r
   r   r   r   r   r   r   r   c                 C   sL   | j t  v s| j  t  v rtd| j  dt | j | i dS )zuRegister a custom model, gettable with `models.get`.

    Args:
        custom_model: Custom model to register.

    zModel z% already exists. Choose another name.N)__name__globalskeyslower
ValueErrorupdate)custom_model r   L/home/ubuntu/.local/lib/python3.10/site-packages/asteroid/models/__init__.pyregister_model"   s   r   c                 C   s\   t | tr%dd t  D }||  }|du r#tdt|  |S tdt|  )zReturns an model class from a string (case-insensitive).

    Args:
        identifier (str): the model name.

    Returns:
        :class:`torch.nn.Module`
    c                 S   s   i | ]	\}}|  |qS r   )r   ).0kvr   r   r   
<dictcomp>;   s    zget.<locals>.<dictcomp>Nz!Could not interpret model name : )
isinstancestrr   itemsgetr   r   )
identifierto_getclsr   r   r   r!   1   s   
	r!   N)base_modelsr   conv_tasnetr   dccrnetr   dcunetr   dprnn_tasnetr   sudormrfr   r   dptnetr	   fasnetr
   lstm_tasnetr   demaskr   x_umxr   	publisherr   r   __all__r   r!   r   r   r   r   <module>   s   