{ lib , buildPythonPackage , fetchFromGitHub , pythonRelaxDepsHook , 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.5.7"; pyproject = true; src = fetchFromGitHub { owner = "LibreTranslate"; repo = "LibreTranslate"; rev = "refs/tags/v${version}"; hash = "sha256-lOVi/809ig+KtiNwdt9Wovn+2Q8I6amps1sZ5JJy7WE="; }; build-system = [ hatchling pythonRelaxDepsHook ]; 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 ]; }; }