1{
2 lib,
3 aiobotocore,
4 aiofiles,
5 buildPythonPackage,
6 chalice,
7 cryptography,
8 dill,
9 fetchFromGitHub,
10 moto,
11 poetry-core,
12 poetry-dynamic-versioning,
13 pytest-asyncio,
14 pytestCheckHook,
15 pythonOlder,
16}:
17
18buildPythonPackage rec {
19 pname = "aioboto3";
20 version = "13.4.0";
21 pyproject = true;
22
23 disabled = pythonOlder "3.8";
24
25 src = fetchFromGitHub {
26 owner = "terrycain";
27 repo = "aioboto3";
28 tag = "v${version}";
29 hash = "sha256-o3PynPW6nPvbBrsw+HU2fJheVRpCHCb0EnJdmseorsE=";
30 };
31
32 pythonRelaxDeps = [
33 "aiobotocore"
34 ];
35
36 build-system = [
37 poetry-core
38 poetry-dynamic-versioning
39 ];
40
41 dependencies = [
42 aiobotocore
43 aiofiles
44 ] ++ aiobotocore.optional-dependencies.boto3;
45
46 optional-dependencies = {
47 chalice = [ chalice ];
48 s3cse = [ cryptography ];
49 };
50
51 nativeCheckInputs =
52 [
53 dill
54 moto
55 pytest-asyncio
56 pytestCheckHook
57 ]
58 ++ moto.optional-dependencies.server
59 ++ lib.flatten (builtins.attrValues optional-dependencies);
60
61 pythonImportsCheck = [ "aioboto3" ];
62
63 meta = {
64 description = "Wrapper to use boto3 resources with the aiobotocore async backend";
65 homepage = "https://github.com/terrycain/aioboto3";
66 changelog = "https://github.com/terrycain/aioboto3/blob/${src.rev}/CHANGELOG.rst";
67 license = lib.licenses.asl20;
68 maintainers = with lib.maintainers; [ mbalatsko ];
69 };
70}