1{
2 annexremote,
3 buildPythonPackage,
4 datalad,
5 datasalad,
6 fetchFromGitHub,
7 git-annex,
8 git,
9 humanize,
10 lib,
11 more-itertools,
12 openssh,
13 psutil,
14 pytestCheckHook,
15 pythonAtLeast,
16 setuptools,
17 unzip,
18 versioneer,
19 webdavclient3,
20}:
21
22buildPythonPackage rec {
23 pname = "datalad-next";
24 version = "1.5.0";
25 pyproject = true;
26
27 src = fetchFromGitHub {
28 owner = "datalad";
29 repo = "datalad-next";
30 tag = version;
31 hash = "sha256-fqP6nG2ncDRg48kvlsmPjNBOzfQp9+7wTcGvsYVrRzA=";
32 };
33
34 postPatch = ''
35 # Remove vendorized versioneer.py
36 rm versioneer.py
37 '';
38
39 nativeBuildInputs = [ git ];
40
41 build-system = [
42 setuptools
43 versioneer
44 ];
45
46 dependencies = [
47 annexremote
48 datasalad
49 datalad
50 humanize
51 more-itertools
52 ];
53
54 preCheck = ''
55 export HOME=$TMPDIR
56 '';
57
58 nativeCheckInputs = [
59 pytestCheckHook
60 webdavclient3
61 psutil
62 git-annex
63 datalad
64 openssh
65 unzip
66 ];
67
68 disabledTests = [
69 # remotes available after datalad-next install (through `console_scripts`), but not yet in $PATH during test
70 "test_uncurl_addurl_unredirected"
71 "test_uncurl"
72 "test_uncurl_ria_access"
73 "test_uncurl_store"
74 "test_uncurl_remove"
75 "test_uncurl_testremote"
76 "test_replace_add_archive_content"
77 "test_annex_remote"
78 "test_export_remote"
79 "test_annex_remote_autorepush"
80 "test_export_remote_autorepush"
81 "test_typeweb_annex"
82 "test_typeweb_annex_uncompressed"
83 "test_typeweb_export"
84 "test_submodule_url"
85 "test_uncurl_progress_reporting_to_annex"
86 "test_archivist_retrieval"
87 "test_archivist_retrieval_legacy"
88
89 # hardcoded /bin path
90 "test_auto_if_wanted_data_transfer_path_restriction"
91
92 # requires internet access
93 "test_push_wanted"
94 "test_auto_data_transfer"
95 "test_http_url_operations"
96 "test_transparent_decompression"
97 "test_compressed_file_stay_compressed"
98 "test_ls_file_collection_tarfile"
99 "test_iter_tar"
100 ]
101 ++ lib.optionals (pythonAtLeast "3.13") [
102 # RuntimeError
103 "test_tree_with_broken_symlinks"
104 ];
105
106 disabledTestPaths = [
107 # requires internet access
108 "datalad_next/commands/tests/test_download.py"
109 "datalad_next/archive_operations/tests/test_tarfile.py"
110 ];
111
112 pythonImportsCheck = [ "datalad_next" ];
113
114 meta = {
115 description = "DataLad extension with a staging area for additional functionality, or for improved performance and user experience";
116 changelog = "https://github.com/datalad/datalad-next/blob/main/CHANGELOG.md";
117 homepage = "https://github.com/datalad/datalad-next";
118 license = lib.licenses.mit;
119 maintainers = with lib.maintainers; [ gador ];
120 };
121}