1{
2 lib,
3 botocore,
4 buildPythonPackage,
5 fetchFromGitHub,
6 jmespath,
7 pytest-xdist,
8 pytestCheckHook,
9 pythonOlder,
10 pythonRelaxDepsHook,
11 s3transfer,
12 setuptools,
13}:
14
15buildPythonPackage rec {
16 pname = "boto3";
17 version = "1.34.58"; # N.B: if you change this, change botocore and awscli to a matching version
18 pyproject = true;
19
20 disabled = pythonOlder "3.8";
21
22 src = fetchFromGitHub {
23 owner = "boto";
24 repo = "boto3";
25 rev = "refs/tags/${version}";
26 hash = "sha256-2L4pHjrDoy7dPZm0nx+NXZV/K3ZVx7FrNGYZTMrwAs4=";
27 };
28
29 nativeBuildInputs = [
30 pythonRelaxDepsHook
31 setuptools
32 ];
33
34 pythonRelaxDeps = [ "s3transfer" ];
35
36 propagatedBuildInputs = [
37 botocore
38 jmespath
39 s3transfer
40 ];
41
42 nativeCheckInputs = [
43 pytest-xdist
44 pytestCheckHook
45 ];
46
47 pythonImportsCheck = [ "boto3" ];
48
49 disabledTestPaths = [
50 # Integration tests require networking
51 "tests/integration"
52 ];
53
54 passthru.optional-dependencies = {
55 crt = [ botocore.optional-dependencies.crt ];
56 };
57
58 meta = with lib; {
59 description = "AWS SDK for Python";
60 homepage = "https://github.com/boto/boto3";
61 changelog = "https://github.com/boto/boto3/blob/${version}/CHANGELOG.rst";
62 license = licenses.asl20;
63 longDescription = ''
64 Boto3 is the Amazon Web Services (AWS) Software Development Kit (SDK) for
65 Python, which allows Python developers to write software that makes use of
66 services like Amazon S3 and Amazon EC2.
67 '';
68 maintainers = with maintainers; [ anthonyroussel ];
69 };
70}