Merge pull request #268619 from tweag/lib-descriptions
[NixPkgs.git] / pkgs / development / python-modules / fsspec / default.nix
bloba90fe66a48cc74d4361080eeb585bfa4e6e789a8
1 { lib
2 , stdenv
3 , aiohttp
4 , buildPythonPackage
5 , fetchFromGitHub
6 , numpy
7 , paramiko
8 , pytest-asyncio
9 , pytest-mock
10 , pytest-vcr
11 , pytestCheckHook
12 , pythonOlder
13 , requests
14 , smbprotocol
15 , tqdm
16 , adlfs
17 , dask
18 , distributed
19 , dropbox
20 , fusepy
21 , gcsfs
22 , libarchive-c
23 , ocifs
24 , panel
25 , pyarrow
26 , pygit2
27 , s3fs
30 buildPythonPackage rec {
31   pname = "fsspec";
32   version = "2023.10.0";
33   format = "setuptools";
35   disabled = pythonOlder "3.8";
37   src = fetchFromGitHub {
38     owner = "fsspec";
39     repo = "filesystem_spec";
40     rev = "refs/tags/${version}";
41     hash = "sha256-cLkCQQbb/AakDSz1NTrVlHh8LdgoqtjX8OPT+Nb1NA4=";
42   };
44   propagatedBuildInputs = [
45     aiohttp
46     paramiko
47     requests
48     smbprotocol
49     tqdm
50   ];
52   passthru.optional-dependencies = {
53     entrypoints = [
54     ];
55     abfs = [
56       adlfs
57     ];
58     adl = [
59       adlfs
60     ];
61     dask = [
62       dask
63       distributed
64     ];
65     dropbox = [
66       # missing dropboxdrivefs
67       requests
68       dropbox
69     ];
70     gcs = [
71       gcsfs
72     ];
73     git = [
74       pygit2
75     ];
76     github = [
77       requests
78     ];
79     gs = [
80       gcsfs
81     ];
82     hdfs = [
83       pyarrow
84     ];
85     arrow = [
86       pyarrow
87     ];
88     http = [
89       aiohttp
90       requests
91     ];
92     sftp = [
93       paramiko
94     ];
95     s3 = [
96       s3fs
97     ];
98     oci = [
99       ocifs
100     ];
101     smb = [
102       smbprotocol
103     ];
104     ssh = [
105       paramiko
106     ];
107     fuse = [
108       fusepy
109     ];
110     libarchive = [
111       libarchive-c
112     ];
113     gui = [
114       panel
115     ];
116     tqdm = [
117       tqdm
118     ];
119   };
121   nativeCheckInputs = [
122     numpy
123     pytest-asyncio
124     pytest-mock
125     pytest-vcr
126     pytestCheckHook
127   ];
129   __darwinAllowLocalNetworking = true;
131   disabledTests = [
132     # Test assumes user name is part of $HOME
133     # AssertionError: assert 'nixbld' in '/homeless-shelter/foo/bar'
134     "test_strip_protocol_expanduser"
135     # test accesses this remote ftp server:
136     # https://ftp.fau.de/debian-cd/current/amd64/log/success
137     "test_find"
138     # Tests want to access S3
139     "test_urlpath_inference_errors"
140     "test_mismatch"
141   ] ++ lib.optionals (stdenv.isDarwin) [
142     # works locally on APFS, fails on hydra with AssertionError comparing timestamps
143     # darwin hydra builder uses HFS+ and has only one second timestamp resolution
144     # this two tests however, assume nanosecond resolution
145     "test_modified"
146     "test_touch"
147   ];
149   disabledTestPaths = [
150     # JSON decoding issues
151     "fsspec/implementations/tests/test_dbfs.py"
152   ];
154   pythonImportsCheck = [
155     "fsspec"
156   ];
158   meta = with lib; {
159     description = "A specification that Python filesystems should adhere to";
160     homepage = "https://github.com/fsspec/filesystem_spec";
161     changelog = "https://github.com/fsspec/filesystem_spec/raw/${version}/docs/source/changelog.rst";
162     license = licenses.bsd3;
163     maintainers = with maintainers; [ ];
164   };