diff --git a/pkgs/by-name/do/docling-serve/package.nix b/pkgs/by-name/do/docling-serve/package.nix index ff8e4514d60e..38fee14abdcc 100644 --- a/pkgs/by-name/do/docling-serve/package.nix +++ b/pkgs/by-name/do/docling-serve/package.nix @@ -2,9 +2,21 @@ python3Packages, nixosTests, withUI ? false, + withTesserocr ? false, + withRapidocr ? false, + withCPU ? false, }: -(python3Packages.toPythonApplication (python3Packages.docling-serve.override { inherit withUI; })) +(python3Packages.toPythonApplication ( + python3Packages.docling-serve.override { + inherit + withUI + withTesserocr + withRapidocr + withCPU + ; + } +)) // { passthru.tests = { docling-serve = nixosTests.docling-serve; diff --git a/pkgs/development/python-modules/docling-serve/default.nix b/pkgs/development/python-modules/docling-serve/default.nix index 16694ea49e2f..9cbf5b6339f3 100644 --- a/pkgs/development/python-modules/docling-serve/default.nix +++ b/pkgs/development/python-modules/docling-serve/default.nix @@ -12,24 +12,37 @@ python-multipart, uvicorn, websockets, + tesserocr, + rapidocr-onnxruntime, + onnxruntime, + torch, + torchvision, gradio, nodejs, which, withUI ? false, + withTesserocr ? false, + withRapidocr ? false, + withCPU ? false, }: buildPythonPackage rec { pname = "docling-serve"; - version = "0.8.0"; + version = "0.10.1"; pyproject = true; src = fetchFromGitHub { owner = "docling-project"; repo = "docling-serve"; tag = "v${version}"; - hash = "sha256-ACoqhaGiYHf2dqulxfHQDH/JIhuUlH7wyu0JY4hd0U8="; + hash = "sha256-ApI8I14X2BBenEZ9mLXifhgtY1DHdPljMd1LvjbNUXM="; }; + postPatch = '' + substituteInPlace pyproject.toml \ + --replace-fail '"kfp[kubernetes]>=2.10.0",' "" + ''; + build-system = [ hatchling setuptools-scm @@ -39,15 +52,20 @@ buildPythonPackage rec { "websockets" ]; - dependencies = [ - docling - fastapi - httpx - pydantic-settings - python-multipart - uvicorn - websockets - ] ++ lib.optionals withUI optional-dependencies.ui; + dependencies = + [ + docling + fastapi + httpx + pydantic-settings + python-multipart + uvicorn + websockets + ] + ++ lib.optionals withUI optional-dependencies.ui + ++ lib.optionals withTesserocr optional-dependencies.tesserocr + ++ lib.optionals withRapidocr optional-dependencies.rapidocr + ++ lib.optionals withCPU optional-dependencies.cpu; optional-dependencies = { ui = [ @@ -55,6 +73,17 @@ buildPythonPackage rec { nodejs which ]; + tesserocr = [ + tesserocr + ]; + rapidocr = [ + rapidocr-onnxruntime + onnxruntime + ]; + cpu = [ + torch + torchvision + ]; }; pythonImportsCheck = [