1{
2 lib,
3 buildPythonPackage,
4 fetchFromGitHub,
5
6 # build-system
7 setuptools,
8 setuptools-scm,
9
10 # dependencies
11 aiohttp,
12 dask,
13 fsspec,
14 numpy,
15 requests,
16 scikit-image,
17 toolz,
18 zarr,
19
20 # tests
21 pytestCheckHook,
22}:
23
24buildPythonPackage rec {
25 pname = "ome-zarr";
26 version = "0.12.2";
27 pyproject = true;
28
29 src = fetchFromGitHub {
30 owner = "ome";
31 repo = "ome-zarr-py";
32 tag = "v${version}";
33 hash = "sha256-lwv6PHm41HFylt7b0d5LHCrCIXNWFNGg59VQvPXYtVc=";
34 };
35
36 build-system = [
37 setuptools
38 setuptools-scm
39 ];
40
41 dependencies = [
42 aiohttp
43 dask
44 fsspec
45 numpy
46 requests
47 scikit-image
48 toolz
49 zarr
50 ]
51 ++ fsspec.optional-dependencies.s3;
52
53 nativeCheckInputs = [
54 pytestCheckHook
55 ];
56
57 disabledTests = [
58 # attempts to access network
59 "test_s3_info"
60 ];
61
62 disabledTestPaths = [
63 # Fail with RecursionError
64 # https://github.com/ome/ome-zarr-py/issues/352
65 "tests/test_cli.py::TestCli::test_astronaut_download"
66 "tests/test_cli.py::TestCli::test_astronaut_info"
67 "tests/test_cli.py::TestCli::test_coins_info"
68 "tests/test_emitter.py::test_close"
69 "tests/test_emitter.py::test_create_wrong_encoding"
70 "tests/test_node.py::TestNode::test_image"
71 "tests/test_node.py::TestNode::test_label"
72 "tests/test_node.py::TestNode::test_labels"
73 "tests/test_ome_zarr.py::TestOmeZarr::test_download"
74 "tests/test_ome_zarr.py::TestOmeZarr::test_info"
75 "tests/test_reader.py::TestReader::test_image"
76 "tests/test_reader.py::TestReader::test_label"
77 "tests/test_reader.py::TestReader::test_labels"
78 "tests/test_starting_points.py::TestStartingPoints::test_label"
79 "tests/test_starting_points.py::TestStartingPoints::test_labels"
80 "tests/test_starting_points.py::TestStartingPoints::test_top_level"
81
82 # tries to access network:
83 "ome_zarr/io.py"
84 ];
85
86 pythonImportsCheck = [
87 "ome_zarr"
88 "ome_zarr.cli"
89 "ome_zarr.csv"
90 "ome_zarr.data"
91 "ome_zarr.format"
92 "ome_zarr.io"
93 "ome_zarr.reader"
94 "ome_zarr.writer"
95 "ome_zarr.scale"
96 "ome_zarr.utils"
97 ];
98
99 meta = {
100 description = "Implementation of next-generation file format (NGFF) specifications for storing bioimaging data in the cloud";
101 homepage = "https://pypi.org/project/ome-zarr";
102 changelog = "https://github.com/ome/ome-zarr-py/blob/${src.tag}/CHANGELOG.md";
103 license = lib.licenses.bsd2;
104 maintainers = [ lib.maintainers.bcdarwin ];
105 mainProgram = "ome_zarr";
106 };
107}