1{
2 lib,
3 bcrypt,
4 buildPythonPackage,
5 dvc-objects,
6 fetchPypi,
7 setuptools-scm,
8 sshfs,
9 pythonOlder,
10}:
11
12buildPythonPackage rec {
13 pname = "dvc-ssh";
14 version = "4.2.1";
15 pyproject = true;
16
17 disabled = pythonOlder "3.9";
18
19 src = fetchPypi {
20 pname = "dvc_ssh";
21 inherit version;
22 hash = "sha256-ld6uaAIA+8lHK/TjKtrjtmGKj5847SBMYYvKKN+MkS4=";
23 };
24
25 pythonRemoveDeps = [
26 # Prevent circular dependency
27 "dvc"
28 ];
29
30 build-system = [ setuptools-scm ];
31
32 dependencies = [
33 bcrypt
34 dvc-objects
35 sshfs
36 ];
37
38 optional-dependencies = {
39 gssapi = [ sshfs ];
40 };
41
42 # bcrypt is enabled for sshfs in nixpkgs
43 postPatch = ''
44 substituteInPlace setup.cfg --replace "sshfs[bcrypt]" "sshfs"
45 '';
46
47 # Network access is needed for tests
48 doCheck = false;
49
50 # Circular dependency
51 # pythonImportsCheck = [
52 # "dvc_ssh"
53 # ];
54
55 meta = with lib; {
56 description = "SSH plugin for dvc";
57 homepage = "https://pypi.org/project/dvc-ssh/${version}";
58 changelog = "https://github.com/iterative/dvc-ssh/releases/tag/${version}";
59 license = licenses.asl20;
60 maintainers = with maintainers; [ melling ];
61 };
62}