1{ 2 lib, 3 buildPythonPackage, 4 fetchFromGitHub, 5 cython, 6 numpy, 7 setuptools, 8 pkgs, 9 jxrlib, 10 lcms2, 11 lerc, 12 libdeflate, 13 libpng, 14 libtiff, 15 libwebp, 16 openjpeg, 17 xz, 18 zlib, 19 zstd, 20 pytest, 21}: 22 23let 24 version = "2025.8.2"; 25in 26buildPythonPackage rec { 27 pname = "imagecodecs"; 28 inherit version; 29 pyproject = true; 30 31 src = fetchFromGitHub { 32 owner = "cgohlke"; 33 repo = "imagecodecs"; 34 tag = "v${version}"; 35 hash = "sha256-HDyA5SQNZe9G83ARfvD4AAIIos8Oatp+RhnEQTdnRp4="; 36 }; 37 38 build-system = [ 39 cython 40 numpy 41 setuptools 42 ]; 43 44 nativeBuildInputs = [ 45 pkgs.lz4.dev # lz4 was hidden by python3Packages.lz4 46 lcms2.dev 47 openjpeg.dev 48 ]; 49 50 buildInputs = [ 51 pkgs.lz4 52 jxrlib 53 lcms2 54 lerc 55 libdeflate 56 libpng 57 libtiff 58 libwebp 59 openjpeg 60 xz # liblzma 61 zlib 62 zstd 63 ]; 64 65 dependencies = [ 66 numpy 67 ]; 68 69 prePatch = '' 70 substituteInPlace setup.py \ 71 --replace-fail "/usr/include/openjpeg" "${openjpeg.dev}/include/openjpeg" \ 72 --replace-fail "/usr/include/jxrlib" "${jxrlib}/include/jxrlib" 73 ''; 74 75 nativeCheckInputs = [ 76 pytest 77 ]; 78 79 pythonImportsCheck = [ 80 "imagecodecs" 81 ]; 82 83 meta = { 84 description = "Image transformation, compression, and decompression codecs"; 85 homepage = "https://github.com/cgohlke/imagecodecs"; 86 changelog = "https://github.com/cgohlke/imagecodecs/blob/${src.tag}/CHANGES.rst"; 87 license = lib.licenses.bsd3; 88 maintainers = with lib.maintainers; [ yzx9 ]; 89 }; 90}