1{
2 lib,
3 buildPythonPackage,
4 fetchFromGitHub,
5 aiohttp,
6 aioitertools,
7 botocore,
8 python-dateutil,
9 jmespath,
10 multidict,
11 urllib3,
12 wrapt,
13 dill,
14 moto,
15 pytest-asyncio,
16 time-machine,
17 werkzeug,
18 awscli,
19 boto3,
20 httpx,
21 setuptools,
22 pytestCheckHook,
23}:
24
25buildPythonPackage rec {
26 pname = "aiobotocore";
27 version = "2.23.2";
28 pyproject = true;
29
30 src = fetchFromGitHub {
31 owner = "aio-libs";
32 repo = "aiobotocore";
33 tag = version;
34 hash = "sha256-3aqA+zjXgYGqDRF0x2eS458A0N7Dmc0tfOcnukjf0DM=";
35 };
36
37 # Relax version constraints: aiobotocore works with newer botocore versions
38 # the pinning used to match some `extras_require` we're not using.
39 pythonRelaxDeps = [ "botocore" ];
40
41 build-system = [
42 setuptools
43 ];
44
45 dependencies = [
46 aiohttp
47 aioitertools
48 botocore
49 python-dateutil
50 jmespath
51 multidict
52 urllib3
53 wrapt
54 ];
55
56 optional-dependencies = {
57 awscli = [ awscli ];
58 boto3 = [ boto3 ];
59 httpx = [ httpx ];
60 };
61
62 nativeCheckInputs = [
63 dill
64 moto
65 pytest-asyncio
66 time-machine
67 werkzeug
68 pytestCheckHook
69 ]
70 ++ moto.optional-dependencies.server;
71
72 pythonImportsCheck = [ "aiobotocore" ];
73
74 disabledTests = [
75 # TypeError: sequence item 1: expected str instance, MagicMock found
76 "test_signers_generate_db_auth_token"
77 ];
78
79 disabledTestPaths = [
80 # Test requires network access
81 "tests/test_version.py"
82 "tests/test_basic_s3.py"
83 "tests/test_batch.py"
84 "tests/test_dynamodb.py"
85 "tests/test_ec2.py"
86 "tests/test_lambda.py"
87 "tests/test_monitor.py"
88 "tests/test_patches.py"
89 "tests/test_sns.py"
90 "tests/test_sqs.py"
91 "tests/test_waiter.py"
92 ];
93
94 disabledTestMarks = [
95 # Exclude localonly tests (incompatible with moto mocks)
96 "localonly"
97 ];
98
99 __darwinAllowLocalNetworking = true;
100
101 meta = {
102 description = "Python client for amazon services";
103 homepage = "https://github.com/aio-libs/aiobotocore";
104 changelog = "https://github.com/aio-libs/aiobotocore/blob/${src.tag}/CHANGES.rst";
105 license = lib.licenses.asl20;
106 maintainers = with lib.maintainers; [ teh ];
107 };
108}