nixpkgs/pkgs/applications/version-management/datalad/default.nix
2024-04-23 05:32:29 +00:00

86 lines
1.7 KiB
Nix

{ lib, stdenv, fetchFromGitHub, installShellFiles, python3, git, git-annex }:
python3.pkgs.buildPythonApplication rec {
pname = "datalad";
version = "1.0.2";
src = fetchFromGitHub {
owner = "datalad";
repo = pname;
rev = "refs/tags/${version}";
hash = "sha256-oq+DdlWcwjJSQdnqHlYCa9I7iSOKf+hI35Lcv/GM24c=";
};
nativeBuildInputs = [ installShellFiles git ];
propagatedBuildInputs = with python3.pkgs; [
# core
platformdirs
chardet
iso8601
humanize
fasteners
packaging
patool
tqdm
annexremote
looseversion
setuptools
git-annex
# downloaders-extra
# requests-ftp # not in nixpkgs yet
# downloaders
boto
keyrings-alt
keyring
msgpack
requests
# publish
python-gitlab
# misc
argcomplete
pyperclip
python-dateutil
# metadata
simplejson
whoosh
# metadata-extra
pyyaml
mutagen
exifread
python-xmp-toolkit
pillow
# duecredit
duecredit
# python>=3.8
distro
] ++ lib.optionals stdenv.hostPlatform.isWindows [ colorama ]
++ lib.optionals (python3.pythonOlder "3.10") [ importlib-metadata ];
postInstall = ''
installShellCompletion --cmd datalad \
--bash <($out/bin/datalad shell-completion) \
--zsh <($out/bin/datalad shell-completion)
wrapProgram $out/bin/datalad --prefix PYTHONPATH : "$PYTHONPATH"
'';
# no tests
doCheck = false;
pythonImportsCheck = [ "datalad" ];
meta = with lib; {
description = "Keep code, data, containers under control with git and git-annex";
homepage = "https://www.datalad.org";
license = licenses.mit;
maintainers = with maintainers; [ renesat ];
};
}