mirror of
https://github.com/LibreTranslate/LibreTranslate.git
synced 2025-06-20 08:01:00 +00:00
Linted with black
This commit is contained in:
parent
167f551a96
commit
202db95f52
10 changed files with 325 additions and 168 deletions
32
app/init.py
32
app/init.py
|
@ -5,6 +5,7 @@ import os, glob, shutil, zipfile
|
|||
import app.language
|
||||
import polyglot
|
||||
|
||||
|
||||
def boot(load_only=None):
|
||||
try:
|
||||
check_and_install_models(load_only_lang_codes=load_only)
|
||||
|
@ -12,6 +13,7 @@ def boot(load_only=None):
|
|||
except Exception as e:
|
||||
print("Cannot update models (normal if you're offline): %s" % str(e))
|
||||
|
||||
|
||||
def check_and_install_models(force=False, load_only_lang_codes=None):
|
||||
if len(package.get_installed_packages()) < 2 or force:
|
||||
# Update package definitions from remote
|
||||
|
@ -29,7 +31,10 @@ def check_and_install_models(force=False, load_only_lang_codes=None):
|
|||
for pack in available_packages:
|
||||
unavailable_lang_codes -= {pack.from_code, pack.to_code}
|
||||
if unavailable_lang_codes:
|
||||
raise ValueError('Unavailable language codes: %s.' % ','.join(sorted(unavailable_lang_codes)))
|
||||
raise ValueError(
|
||||
"Unavailable language codes: %s."
|
||||
% ",".join(sorted(unavailable_lang_codes))
|
||||
)
|
||||
# Keep only the packages that have both from_code and to_code in our list.
|
||||
available_packages = [
|
||||
pack
|
||||
|
@ -38,39 +43,52 @@ def check_and_install_models(force=False, load_only_lang_codes=None):
|
|||
and pack.to_code in load_only_lang_codes
|
||||
]
|
||||
if not available_packages:
|
||||
raise ValueError('no available package')
|
||||
raise ValueError("no available package")
|
||||
print("Keep %s models" % len(available_packages))
|
||||
|
||||
# Download and install all available packages
|
||||
for available_package in available_packages:
|
||||
print("Downloading %s (%s) ..." % (available_package, available_package.package_version))
|
||||
print(
|
||||
"Downloading %s (%s) ..."
|
||||
% (available_package, available_package.package_version)
|
||||
)
|
||||
download_path = available_package.download()
|
||||
package.install_from_path(download_path)
|
||||
|
||||
# reload installed languages
|
||||
app.language.languages = translate.load_installed_languages()
|
||||
print("Loaded support for %s languages (%s models total)!" % (len(translate.load_installed_languages()), len(available_packages)))
|
||||
print(
|
||||
"Loaded support for %s languages (%s models total)!"
|
||||
% (len(translate.load_installed_languages()), len(available_packages))
|
||||
)
|
||||
|
||||
|
||||
def check_and_install_transliteration(force=False):
|
||||
# 'en' is not a supported transliteration language
|
||||
transliteration_languages = [l.code for l in app.language.languages if l.code != "en"]
|
||||
transliteration_languages = [
|
||||
l.code for l in app.language.languages if l.code != "en"
|
||||
]
|
||||
|
||||
# check installed
|
||||
install_needed = []
|
||||
if not force:
|
||||
t_packages_path = Path(polyglot.polyglot_path) / "transliteration2"
|
||||
for lang in transliteration_languages:
|
||||
if not (t_packages_path / lang / f"transliteration.{lang}.tar.bz2").exists():
|
||||
if not (
|
||||
t_packages_path / lang / f"transliteration.{lang}.tar.bz2"
|
||||
).exists():
|
||||
install_needed.append(lang)
|
||||
else:
|
||||
install_needed = transliteration_languages
|
||||
|
||||
# install the needed transliteration packages
|
||||
if install_needed:
|
||||
print(f"Installing transliteration models for the following languages: {', '.join(install_needed)}")
|
||||
print(
|
||||
f"Installing transliteration models for the following languages: {', '.join(install_needed)}"
|
||||
)
|
||||
|
||||
from polyglot.downloader import Downloader
|
||||
|
||||
downloader = Downloader()
|
||||
|
||||
for lang in install_needed:
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue