96 lines
1.9 KiB
Nix
96 lines
1.9 KiB
Nix
|
{
|
||
|
lib,
|
||
|
buildPythonPackage,
|
||
|
fetchFromGitHub,
|
||
|
pytestCheckHook,
|
||
|
hatchling,
|
||
|
argostranslate,
|
||
|
flask,
|
||
|
flask-swagger,
|
||
|
flask-swagger-ui,
|
||
|
flask-limiter,
|
||
|
flask-babel,
|
||
|
flask-session,
|
||
|
waitress,
|
||
|
expiringdict,
|
||
|
langdetect,
|
||
|
lexilang,
|
||
|
ltpycld2,
|
||
|
morfessor,
|
||
|
appdirs,
|
||
|
apscheduler,
|
||
|
translatehtml,
|
||
|
argos-translate-files,
|
||
|
requests,
|
||
|
redis,
|
||
|
prometheus-client,
|
||
|
polib,
|
||
|
python,
|
||
|
}:
|
||
|
|
||
|
buildPythonPackage rec {
|
||
|
pname = "libretranslate";
|
||
|
version = "1.6.2";
|
||
|
pyproject = true;
|
||
|
|
||
|
src = fetchFromGitHub {
|
||
|
owner = "LibreTranslate";
|
||
|
repo = "LibreTranslate";
|
||
|
rev = "refs/tags/v${version}";
|
||
|
hash = "sha256-u0m9dTxwSGU50YplV24daSO+WY/At648OpIEZYMmqqo=";
|
||
|
};
|
||
|
|
||
|
build-system = [
|
||
|
hatchling
|
||
|
];
|
||
|
|
||
|
pythonRelaxDeps = true;
|
||
|
|
||
|
dependencies = [
|
||
|
argostranslate
|
||
|
flask
|
||
|
flask-swagger
|
||
|
flask-swagger-ui
|
||
|
flask-limiter
|
||
|
flask-babel
|
||
|
flask-session
|
||
|
waitress
|
||
|
expiringdict
|
||
|
langdetect
|
||
|
lexilang
|
||
|
ltpycld2
|
||
|
morfessor
|
||
|
appdirs
|
||
|
apscheduler
|
||
|
translatehtml
|
||
|
argos-translate-files
|
||
|
requests
|
||
|
redis
|
||
|
prometheus-client
|
||
|
polib
|
||
|
];
|
||
|
|
||
|
postInstall = ''
|
||
|
# expose static files to be able to serve them via web-server
|
||
|
mkdir -p $out/share/libretranslate
|
||
|
ln -s $out/${python.sitePackages}/libretranslate/static $out/share/libretranslate/static
|
||
|
'';
|
||
|
|
||
|
doCheck = false; # needs network access
|
||
|
|
||
|
nativeCheckInputs = [ pytestCheckHook ];
|
||
|
|
||
|
# required for import check to work (argostranslate)
|
||
|
env.HOME = "/tmp";
|
||
|
|
||
|
pythonImportsCheck = [ "libretranslate" ];
|
||
|
|
||
|
meta = with lib; {
|
||
|
description = "Free and Open Source Machine Translation API. Self-hosted, no limits, no ties to proprietary services";
|
||
|
homepage = "https://libretranslate.com";
|
||
|
changelog = "https://github.com/LibreTranslate/LibreTranslate/releases/tag/v${version}";
|
||
|
license = licenses.agpl3Only;
|
||
|
maintainers = with maintainers; [ misuzu ];
|
||
|
};
|
||
|
}
|