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