U
    ânldd	  ã                   @   s<   d dl mZ d dlmZmZ d dlZd	dd„Zd
dd„ZdS )é    )ÚPath)ÚpackageÚ	translateNFc              
   C   sH   zt || d� W n2 tk
rB } ztdt|ƒ ƒ W 5 d }~X Y nX d S )N)ÚforceÚload_only_lang_codesz3Cannot update models (normal if you're offline): %s)Úcheck_and_install_modelsÚ	ExceptionÚprintÚstr)Ú	load_onlyÚupdate_modelsÚe© r   ú3/var/www/html/LibreTranslate/libretranslate/init.pyÚboot   s    r   c                    sþ   t t ¡ ƒdk s| rútdƒ t ¡  t ¡ }tdt |ƒ ƒ ˆ d k	r®tˆ ƒ}|D ]}||j|jh8 }qP|r€t	dd 
t|ƒ¡ ƒ‚‡ fdd„|D ƒ}|sžt	dƒ‚td	t |ƒ ƒ |D ]}td
||jf ƒ | ¡  q²t ¡ tj_tdt t ¡ ƒt |ƒf ƒ d S )Né   zUpdating language modelszFound %s modelszUnavailable language codes: %s.ú,c                    s$   g | ]}|j ˆ kr|jˆ kr|‘qS r   )Ú	from_codeÚto_code)Ú.0Úpack©r   r   r   Ú
<listcomp>%   s   
 
þz,check_and_install_models.<locals>.<listcomp>zno available packagezKeep %s modelszDownloading %s (%s) ...z2Loaded support for %s languages (%s models total)!)Úlenr   Úget_installed_packagesr	   Úupdate_package_indexÚget_available_packagesÚsetr   r   Ú
ValueErrorÚjoinÚsortedÚpackage_versionÚinstallr   Úget_installed_languagesÚlibretranslateÚlanguageÚ	languages)r   r   Zavailable_packagesZunavailable_lang_codesr   Úavailable_packager   r   r   r      sD    ÿÿ
þÿÿ
ÿÿr   )NF)FN)	Úpathlibr   Úargostranslater   r   Úlibretranslate.languager$   r   r   r   r   r   r   Ú<module>   s   
