depot/third_party/nixpkgs/pkgs/development/python-modules/boto/default.nix

57 lines
1.8 KiB
Nix
Raw Normal View History

{ lib
, buildPythonPackage
, fetchPypi
, pythonAtLeast
, python
, nose
, mock
, requests
, httpretty
}:
buildPythonPackage rec {
pname = "boto";
version = "2.49.0";
src = fetchPypi {
inherit pname version;
sha256 = "ea0d3b40a2d852767be77ca343b58a9e3a4b00d9db440efb8da74b4e58025e5a";
};
patches = [
# fixes hmac tests
# https://sources.debian.org/src/python-boto/2.49.0-4/debian/patches/bug-953970_python3.8-compat.patch/
./bug-953970_python3.8-compat.patch
# fixes test_startElement_with_name_tagSet_calls_ResultSet
# https://sources.debian.org/src/python-boto/2.49.0-4.1/debian/patches/0005-Don-t-mock-list-subclass.patch/
./0005-Don-t-mock-list-subclass.patch
];
# boto is deprecated by upstream as of 2021-05-27 (https://github.com/boto/boto/commit/4980ac58764c3d401cb0b9552101f9c61c18f445)
# this patch is a bit simpler than https://github.com/boto/boto/pull/3898
# as we don't have to take care of pythonOlder "3.3".
postPatch = ''
substituteInPlace boto/dynamodb/types.py --replace 'from collections import Mapping' 'from collections.abc import Mapping'
substituteInPlace boto/mws/connection.py --replace 'import collections' 'import collections.abc as collections'
'';
checkPhase = ''
${python.interpreter} tests/test.py default
'';
nativeCheckInputs = [ nose mock ];
propagatedBuildInputs = [ requests httpretty ];
meta = with lib; {
homepage = "https://github.com/boto/boto";
license = licenses.mit;
description = "Python interface to Amazon Web Services";
longDescription = ''
The boto module is an integrated interface to current and
future infrastructural services offered by Amazon Web
Services. This includes S3, SQS, EC2, among others.
'';
maintainers = [ maintainers.costrouc ];
};
}