1{
2 lib,
3 attrs,
4 boto3,
5 buildPythonPackage,
6 cryptography,
7 fetchFromGitHub,
8 mock,
9 pytest-mock,
10 pytestCheckHook,
11 pythonOlder,
12 setuptools,
13 wrapt,
14}:
15
16buildPythonPackage rec {
17 pname = "aws-encryption-sdk";
18 version = "4.0.3";
19 pyproject = true;
20
21 disabled = pythonOlder "3.8";
22
23 src = fetchFromGitHub {
24 owner = "aws";
25 repo = "aws-encryption-sdk-python";
26 tag = "v${version}";
27 hash = "sha256-SlYXob61YLl96NKnmsGZTIU10bfwKYbhLsHjC/tXGI4=";
28 };
29
30 build-system = [ setuptools ];
31
32 dependencies = [
33 attrs
34 boto3
35 cryptography
36 wrapt
37 ];
38
39 nativeCheckInputs = [
40 mock
41 pytest-mock
42 pytestCheckHook
43 ];
44
45 enabledTestPaths = [ "test" ];
46
47 disabledTestPaths = [
48 # Tests require networking
49 "examples"
50 "test/integration"
51 # requires yet to be packaged aws-cryptographic-material-providers
52 "test/mpl"
53 ];
54
55 disabledTests = [
56 # pytest 8 compat issue
57 "test_happy_version"
58 ];
59
60 pythonImportsCheck = [ "aws_encryption_sdk" ];
61
62 meta = with lib; {
63 description = "Python implementation of the AWS Encryption SDK";
64 homepage = "https://aws-encryption-sdk-python.readthedocs.io/";
65 changelog = "https://github.com/aws/aws-encryption-sdk-python/blob/v${version}/CHANGELOG.rst";
66 license = licenses.asl20;
67 maintainers = with maintainers; [ anthonyroussel ];
68 };
69}