1{
2 stdenv,
3 lib,
4 asyncssh,
5 bcrypt,
6 buildPythonPackage,
7 fetchFromGitHub,
8 fsspec,
9 mock-ssh-server,
10 pytest-asyncio,
11 pytestCheckHook,
12 setuptools,
13 setuptools-scm,
14}:
15
16buildPythonPackage rec {
17 pname = "sshfs";
18 version = "2024.4.1";
19 pyproject = true;
20
21 src = fetchFromGitHub {
22 owner = "fsspec";
23 repo = "sshfs";
24 rev = "refs/tags/${version}";
25 hash = "sha256-qkEojf/3YBMoYbRt0Q93MJYXyL9AWR24AEe3/zdn58U=";
26 };
27
28 nativeBuildInputs = [
29 setuptools
30 setuptools-scm
31 ];
32
33 propagatedBuildInputs = [
34 asyncssh
35 bcrypt
36 fsspec
37 ];
38
39 __darwinAllowLocalNetworking = true;
40
41 nativeCheckInputs = [
42 mock-ssh-server
43 pytest-asyncio
44 pytestCheckHook
45 ];
46
47 disabledTests = lib.optionals stdenv.isDarwin [
48 # test fails with sandbox enabled
49 "test_checksum"
50 ];
51
52 pythonImportsCheck = [ "sshfs" ];
53
54 meta = with lib; {
55 description = "SSH/SFTP implementation for fsspec";
56 homepage = "https://github.com/fsspec/sshfs/";
57 changelog = "https://github.com/fsspec/sshfs/releases/tag/${version}";
58 license = licenses.asl20;
59 maintainers = with maintainers; [ melling ];
60 };
61}