Clone of https://github.com/NixOS/nixpkgs.git (to stress-test knotserver)
at flake-libs 104 lines 2.0 kB view raw
1{ 2 lib, 3 buildPythonPackage, 4 fetchFromGitHub, 5 hatchling, 6 setuptools-scm, 7 # python dependencies 8 docling, 9 fastapi, 10 httpx, 11 pydantic-settings, 12 python-multipart, 13 uvicorn, 14 websockets, 15 tesserocr, 16 rapidocr-onnxruntime, 17 onnxruntime, 18 torch, 19 torchvision, 20 gradio, 21 nodejs, 22 which, 23 withUI ? false, 24 withTesserocr ? false, 25 withRapidocr ? false, 26 withCPU ? false, 27}: 28 29buildPythonPackage rec { 30 pname = "docling-serve"; 31 version = "0.11.0"; 32 pyproject = true; 33 34 src = fetchFromGitHub { 35 owner = "docling-project"; 36 repo = "docling-serve"; 37 tag = "v${version}"; 38 hash = "sha256-dPCD7Ovc6Xiga+gYOwg0mJIIhHywVOyxKIAFF5XUsYw="; 39 }; 40 41 postPatch = '' 42 substituteInPlace pyproject.toml \ 43 --replace-fail '"kfp[kubernetes]>=2.10.0",' "" 44 ''; 45 46 build-system = [ 47 hatchling 48 setuptools-scm 49 ]; 50 51 pythonRelaxDeps = [ 52 "websockets" 53 ]; 54 55 dependencies = 56 [ 57 docling 58 fastapi 59 httpx 60 pydantic-settings 61 python-multipart 62 uvicorn 63 websockets 64 ] 65 ++ lib.optionals withUI optional-dependencies.ui 66 ++ lib.optionals withTesserocr optional-dependencies.tesserocr 67 ++ lib.optionals withRapidocr optional-dependencies.rapidocr 68 ++ lib.optionals withCPU optional-dependencies.cpu; 69 70 optional-dependencies = { 71 ui = [ 72 gradio 73 nodejs 74 which 75 ]; 76 tesserocr = [ 77 tesserocr 78 ]; 79 rapidocr = [ 80 rapidocr-onnxruntime 81 onnxruntime 82 ]; 83 cpu = [ 84 torch 85 torchvision 86 ]; 87 }; 88 89 pythonImportsCheck = [ 90 "docling_serve" 91 ]; 92 93 # Require network 94 doCheck = false; 95 96 meta = { 97 changelog = "https://github.com/docling-project/docling-serve/blob/${src.tag}/CHANGELOG.md"; 98 description = "Running Docling as an API service"; 99 homepage = "https://github.com/docling-project/docling-serve"; 100 license = lib.licenses.mit; 101 mainProgram = "docling-serve"; 102 maintainers = with lib.maintainers; [ drupol ]; 103 }; 104}