
    Vh                     &   d Z ddlZddlmZ ddlZddlmZmZ ddl	m
Z
 ddlmZmZmZmZmZmZ ddlmZ  ej        e          Zd	Z ee          j        d
z  Zg dZdZd Zd Zdej        e e f         fdZ!	 dde dej"        e         fdZ#d Z$dS )zLoading pretrained models.
    N)Path)fatalbold   )HDemucs)
RemoteRepo	LocalRepoModelOnlyRepoBagOnlyRepoAnyModelRepoModelLoadingError)_check_diffqz&https://dl.fbaipublicfiles.com/demucs/remote)drumsbassothervocalshtdemucsc                  2    t          dt                    } | S )N   )channelssources)r   SOURCES)models    W/var/www/html/movieo_spanner_bot/venv/lib/python3.11/site-packages/demucs/pretrained.pydemucs_unittestr      s    Q000EL    c                     |                      d          }|                    ddd           |                    ddd d	
           |                     dt          d           d S )NF)requiredz-sz--sigzLocally trained XP signature.)helpz-nz--namez8Pretrained model name or signature. Default is htdemucs.)defaultr    z--repoz9Folder containing all pre-trained models for use with -n.)typer    )add_mutually_exclusive_groupadd_argumentr   )parsergroups     r   add_model_flagsr'       s    ///??E	tW+JKKK	tXtV  X X X
tX  Z Z Z Z Zr   returnc                    d}i }|                                                      d          D ]}|                                }|                    d          r,|                    d          r/|                    dd          d                                         }p|                    dd          d         }||vsJ t          |z   |z   ||<   |S )	N 
#zroot::r   -r   )	read_textsplitstrip
startswithROOT_URL)remote_file_listrootmodelslinesigs        r   _parse_remote_filesr9   )   s    D "F **,,22488 	1 	1zz||??3 	1__W%% 	1::c1%%a(..00DD**S!$$Q'Cf$$$$"T/D0F3KKMr   namerepoc                 
   | dk    rt                      S |<t          t          dz            }t          |          }t	          t          |          }nE|                                st          | d           t          |          }t	          ||          }t          ||          }	 |	                    |           }n0# t          $ r#}d|j        d         v rt                        d}~ww xY w|                                 |S )z`name` must be a bag of models name or a pretrained signature
    from the remote AWS model repo or the specified local repo if `repo` is not None.
    r   Nz	files.txtz must exist and be a directory.diffqr   )r   r9   REMOTE_ROOTr   r   is_dirr   r	   r   	get_modelImportErrorargsr   eval)r:   r;   r6   
model_repobag_repoany_repor   excs           r   r@   r@   9   s   
       |$[;%>??''
{J77{{}} 	<T:::;;;t__
tZ00J11H""4((   chqk!!NNN
 
JJLLLLs   )B? ?
C,	C''C,c                     | j         )t          | _         t          t          d          d           t	          | j         | j                  S )z8
    Load local model package or pre-trained model.
    Nz?Important: the default model was recently changed to `htdemucs`zthe latest Hybrid Transformer Demucs model. In some cases, this model can actually perform worse than previous models. To get back the old default model use `-n mdx_extra_q`.)r:   r;   )r:   DEFAULT_MODELprintr   r@   r;   )rB   s    r   get_model_from_argsrK   V   sN     y!	dTUU&	' 	' 	' $)$)4444r   )N)%__doc__loggingpathlibr   typingtpdora.logr   r   hdemucsr   r;   r   r	   r
   r   r   r   statesr   	getLogger__name__loggerr3   __file__parentr>   r   rI   r   r'   Dictstrr9   Optionalr@   rK    r   r   <module>r]      st                                     d d d d d d d d d d d d d d d d            		8	$	$3d8nn#h.
.
.
.  
Z Z ZRWS#X->    " )- C K%   :
5 
5 
5 
5 
5r   