1{ lib
2, buildPythonPackage
3, fetchPypi
4, botocore
5, jmespath
6, s3transfer
7, futures ? null
8, docutils
9, nose
10, mock
11, isPy3k
12}:
13
14buildPythonPackage rec {
15 pname = "boto3";
16 version = "1.18.54"; # N.B: if you change this, change botocore and awscli to a matching version
17
18 src = fetchPypi {
19 inherit pname version;
20 sha256 = "sha256-LYHcSEAgBZ/HOBZZhDBBB9TbHGd0tjENCMiSoXUfaYA=";
21 };
22
23 propagatedBuildInputs = [ botocore jmespath s3transfer ] ++ lib.optionals (!isPy3k) [ futures ];
24 checkInputs = [ docutils nose mock ];
25
26 checkPhase = ''
27 runHook preCheck
28 # This method is not in mock. It might have appeared in some versions.
29 sed -i 's/action.assert_called_once()/self.assertEqual(action.call_count, 1)/' \
30 tests/unit/resources/test_factory.py
31 nosetests -d tests/unit --verbose
32 runHook postCheck
33 '';
34
35 # Network access
36 doCheck = false;
37
38 pythonImportsCheck = [ "boto3" ];
39
40 meta = {
41 homepage = "https://github.com/boto/boto3";
42 license = lib.licenses.asl20;
43 description = "AWS SDK for Python";
44 longDescription = ''
45 Boto3 is the Amazon Web Services (AWS) Software Development Kit (SDK) for
46 Python, which allows Python developers to write software that makes use of
47 services like Amazon S3 and Amazon EC2.
48 '';
49 };
50}