1{ lib
2, stdenv
3, aiobotocore
4, aiohttp
5, buildPythonPackage
6, docutils
7, fetchPypi
8, fsspec
9, pythonOlder
10}:
11
12buildPythonPackage rec {
13 pname = "s3fs";
14 version = "2023.10.0";
15 format = "setuptools";
16
17 disabled = pythonOlder "3.7";
18
19 src = fetchPypi {
20 inherit pname version;
21 hash = "sha256-xA8jjMyf7/8/bQnUtXYqvWyRO6QuGjKJdrVNA4kBuDU=";
22 };
23
24 postPatch = ''
25 sed -i 's/fsspec==.*/fsspec/' requirements.txt
26 '';
27
28 buildInputs = [
29 docutils
30 ];
31
32 propagatedBuildInputs = [
33 aiobotocore
34 aiohttp
35 fsspec
36 ];
37
38 # Depends on `moto` which has a long dependency chain with exact
39 # version requirements that can't be made to work with current
40 # pythonPackages.
41 doCheck = false;
42
43 pythonImportsCheck = [
44 "s3fs"
45 ];
46
47 meta = with lib; {
48 broken = stdenv.isDarwin;
49 description = "A Pythonic file interface for S3";
50 homepage = "https://github.com/fsspec/s3fs";
51 changelog = "https://github.com/fsspec/s3fs/raw/${version}/docs/source/changelog.rst";
52 license = licenses.bsd3;
53 maintainers = with maintainers; [ teh ];
54 };
55}