1{ lib
2, buildPythonPackage
3, fetchPypi
4, pythonAtLeast
5, python
6, nose
7, mock
8, requests
9, httpretty
10}:
11
12buildPythonPackage rec {
13 pname = "boto";
14 version = "2.49.0";
15
16 src = fetchPypi {
17 inherit pname version;
18 sha256 = "ea0d3b40a2d852767be77ca343b58a9e3a4b00d9db440efb8da74b4e58025e5a";
19 };
20
21 patches = [
22 # fixes hmac tests
23 # https://sources.debian.org/src/python-boto/2.49.0-4/debian/patches/bug-953970_python3.8-compat.patch/
24 ./bug-953970_python3.8-compat.patch
25 # fixes test_startElement_with_name_tagSet_calls_ResultSet
26 # https://sources.debian.org/src/python-boto/2.49.0-4.1/debian/patches/0005-Don-t-mock-list-subclass.patch/
27 ./0005-Don-t-mock-list-subclass.patch
28 ];
29
30 # boto is deprecated by upstream as of 2021-05-27 (https://github.com/boto/boto/commit/4980ac58764c3d401cb0b9552101f9c61c18f445)
31 # this patch is a bit simpler than https://github.com/boto/boto/pull/3898
32 # as we don't have to take care of pythonOlder "3.3".
33 postPatch = ''
34 substituteInPlace boto/dynamodb/types.py --replace 'from collections import Mapping' 'from collections.abc import Mapping'
35 substituteInPlace boto/mws/connection.py --replace 'import collections' 'import collections.abc as collections'
36 '';
37
38 checkPhase = ''
39 ${python.interpreter} tests/test.py default
40 '';
41
42 nativeCheckInputs = [ nose mock ];
43 propagatedBuildInputs = [ requests httpretty ];
44
45 meta = with lib; {
46 homepage = "https://github.com/boto/boto";
47 license = licenses.mit;
48 description = "Python interface to Amazon Web Services";
49 longDescription = ''
50 The boto module is an integrated interface to current and
51 future infrastructural services offered by Amazon Web
52 Services. This includes S3, SQS, EC2, among others.
53 '';
54 maintainers = [ ];
55 };
56}