1{
2 lib,
3 buildPythonPackage,
4 fetchPypi,
5 pythonOlder,
6 hatchling,
7 versioningit,
8 click,
9 click-option-group,
10 importlib-metadata,
11 isodate,
12 progressbar2,
13 pydicom,
14 python-dateutil,
15 pyyaml,
16 requests,
17}:
18
19buildPythonPackage rec {
20 pname = "xnatpy";
21 version = "0.7.2";
22 pyproject = true;
23
24 src = fetchPypi {
25 pname = "xnat";
26 inherit version;
27 hash = "sha256-YbZJl6lvhuhpmeC+0LikZghIEsR2OYe0Om6IRxZcBwg=";
28 };
29
30 build-system = [
31 hatchling
32 versioningit
33 ];
34
35 dependencies = [
36 click
37 click-option-group
38 importlib-metadata
39 isodate
40 progressbar2
41 pydicom
42 python-dateutil
43 pyyaml
44 requests
45 ];
46
47 pythonRelaxDeps = [
48 "importlib-metadata"
49 "python-dateutil"
50 "pydicom"
51 ];
52
53 # tests missing in PyPI dist and require network access and Docker container
54 doCheck = false;
55
56 pythonImportsCheck = [ "xnat" ];
57
58 meta = {
59 homepage = "https://xnat.readthedocs.io";
60 description = "New XNAT client (distinct from pyxnat) that exposes XNAT objects/functions as Python objects/functions";
61 changelog = "https://gitlab.com/radiology/infrastructure/xnatpy/-/blob/${version}/CHANGELOG?ref_type=tags";
62 license = lib.licenses.asl20;
63 maintainers = with lib.maintainers; [ bcdarwin ];
64 mainProgram = "xnat";
65 };
66}