1{ lib
2, stdenv
3, buildPythonPackage
4, pythonOlder
5, fetchPypi
6, substituteAll
7, imageio-ffmpeg
8, numpy
9, pillow
10, psutil
11, pytestCheckHook
12, tifffile
13, fsspec
14, libGL
15}:
16
17buildPythonPackage rec {
18 pname = "imageio";
19 version = "2.28.1";
20 format = "setuptools";
21
22 disabled = pythonOlder "3.7";
23
24 src = fetchPypi {
25 inherit pname version;
26 hash = "sha256-XbUIe+XIFOz34sfTChoVyX7Kl9jCbzHdxU12fUpDvOg=";
27 };
28
29 patches = lib.optionals (!stdenv.isDarwin) [
30 (substituteAll {
31 src = ./libgl-path.patch;
32 libgl = "${libGL.out}/lib/libGL${stdenv.hostPlatform.extensions.sharedLibrary}";
33 })
34 ];
35
36 propagatedBuildInputs = [
37 imageio-ffmpeg
38 numpy
39 pillow
40 ];
41
42 nativeCheckInputs = [
43 fsspec
44 psutil
45 pytestCheckHook
46 tifffile
47 ];
48
49 pytestFlagsArray = [
50 "-m 'not needs_internet'"
51 ];
52
53 preCheck = ''
54 export IMAGEIO_USERDIR="$TMP"
55 export HOME=$TMPDIR
56 '';
57
58 disabledTestPaths = [
59 # tries to fetch fixtures over the network
60 "tests/test_freeimage.py"
61 "tests/test_pillow.py"
62 "tests/test_spe.py"
63 "tests/test_swf.py"
64 ];
65
66 meta = with lib; {
67 description = "Library for reading and writing a wide range of image, video, scientific, and volumetric data formats";
68 homepage = "https://imageio.readthedocs.io";
69 changelog = "https://github.com/imageio/imageio/blob/v${version}/CHANGELOG.md";
70 license = licenses.bsd2;
71 maintainers = with maintainers; [ Luflosi ];
72 };
73}