Something went wrong. Try again.
What happens if I push all of nixpkgs
Something went wrong. Try again.
2.6 kB · 119 lines
Nix
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120{ lib, pkgs, buildPythonPackage, fetchFromGitHub, pytestCheckHook, runCommand, hatchling, argostranslate, flask, flask-swagger, flask-swagger-ui, flask-limiter, flask-babel, flask-session, waitress, expiringdict, langdetect, lexilang, libretranslate, ltpycld2, morfessor, appdirs, apscheduler, translatehtml, argos-translate-files, requests, redis, prometheus-client, polib, python, xorg,}:
buildPythonPackage rec { pname = "libretranslate"; version = "1.7.2"; pyproject = true;
src = fetchFromGitHub { owner = "LibreTranslate"; repo = "LibreTranslate"; tag = "v${version}"; hash = "sha256-PTr42XtZMruWWdFEc6TX4jbWH5Vypgbx2Dhxy6ZG1Y4="; };
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" ];
passthru = { static-compressed = runCommand "libretranslate-data-compressed" { nativeBuildInputs = [ pkgs.brotli xorg.lndir ]; } '' mkdir -p $out/share/libretranslate/static lndir ${libretranslate}/share/libretranslate/static $out/share/libretranslate/static
# Create static gzip and brotli files find -L $out -type f -regextype posix-extended -iregex '.*\.(css|ico|js|svg|ttf)' \ -exec gzip --best --keep --force {} ';' \ -exec brotli --best --keep --no-copy-stat {} ';' ''; };
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/${src.tag}"; license = licenses.agpl3Only; maintainers = with maintainers; [ misuzu ]; };}