nixpkgs mirror (for testing) github.com/NixOS/nixpkgs
nix
at haskell-updates 60 lines 1.4 kB view raw
1{ 2 lib, 3 buildPythonPackage, 4 fetchFromGitHub, 5 setuptools, 6 pymupdf, 7 tabulate, 8}: 9 10buildPythonPackage (finalAttrs: { 11 pname = "pymupdf4llm"; 12 version = "0.3.4"; 13 pyproject = true; 14 15 src = fetchFromGitHub { 16 owner = "pymupdf"; 17 repo = "RAG"; 18 tag = "v${finalAttrs.version}"; 19 hash = "sha256-SgJ47jkE6GcSXVsOMOx8Hm+Ce6pCAjLEhdxGeJEu6DQ="; 20 }; 21 22 sourceRoot = "${finalAttrs.src.name}/pymupdf4llm"; 23 24 build-system = [ setuptools ]; 25 26 dependencies = [ 27 pymupdf 28 tabulate 29 ]; 30 31 checkPhase = '' 32 runHook preCheck 33 34 python3 - <<'EOF' 35 import fitz 36 import pymupdf4llm 37 38 doc = fitz.open() 39 page = doc.new_page() 40 page.insert_text((72, 72), "Hello, Nix!") 41 doc.save("input.pdf") 42 43 md = pymupdf4llm.to_markdown("input.pdf") 44 assert isinstance(md, str), "Returned value is not a string" 45 assert "Hello, Nix!" in md, "Returned value does not contain the expected text" 46 EOF 47 48 runHook postCheck 49 ''; 50 51 pythonImportsCheck = [ "pymupdf4llm" ]; 52 53 meta = { 54 description = "PyMuPDF Utilities for LLM/RAG - converts PDF pages to Markdown format for Retrieval-Augmented Generation"; 55 homepage = "https://github.com/pymupdf/RAG"; 56 changelog = "https://github.com/pymupdf/RAG/blob/${finalAttrs.src.tag}/CHANGES.md"; 57 license = lib.licenses.agpl3Only; 58 maintainers = with lib.maintainers; [ ryota2357 ]; 59 }; 60})