1{ lib
2, aiobotocore
3, boto3
4, buildPythonPackage
5, dvc-objects
6, fetchPypi
7, flatten-dict
8, pythonRelaxDepsHook
9, s3fs
10, setuptools-scm }:
11
12buildPythonPackage rec {
13 pname = "dvc-s3";
14 version = "2.22.0";
15 format = "setuptools";
16
17 src = fetchPypi {
18 inherit pname version;
19 hash = "sha256-19j/JD8KZEQKaj55HYEucHwh/LUJ+88PPFEqAWov2Gg=";
20 };
21
22 # Prevent circular dependency
23 pythonRemoveDeps = [ "dvc" ];
24
25 # dvc-s3 uses boto3 directly, we add in propagatedBuildInputs
26 postPatch = ''
27 substituteInPlace setup.cfg --replace 'aiobotocore[boto3]' 'aiobotocore'
28 '';
29
30 nativeBuildInputs = [ setuptools-scm pythonRelaxDepsHook ];
31
32 propagatedBuildInputs = [
33 aiobotocore boto3 dvc-objects flatten-dict s3fs
34 ];
35
36 # Network access is needed for tests
37 doCheck = false;
38
39 pythonImportsCheck = [ "dvc_s3" ];
40
41 meta = with lib; {
42 description = "s3 plugin for dvc";
43 homepage = "https://pypi.org/project/dvc-s3/${version}";
44 changelog = "https://github.com/iterative/dvc-s3/releases/tag/${version}";
45 license = licenses.asl20;
46 maintainers = with maintainers; [ melling ];
47 };
48}