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