1{
2 lib,
3 aiohttp-retry,
4 aiohttp,
5 aiounittest,
6 buildPythonPackage,
7 cryptography,
8 django,
9 fetchFromGitHub,
10 mock,
11 multidict,
12 pyjwt,
13 pyngrok,
14 pytestCheckHook,
15 pythonAtLeast,
16 pythonOlder,
17 pytz,
18 requests,
19 setuptools,
20}:
21
22buildPythonPackage rec {
23 pname = "twilio";
24 version = "9.8.2";
25 pyproject = true;
26
27 disabled = pythonOlder "3.7";
28
29 src = fetchFromGitHub {
30 owner = "twilio";
31 repo = "twilio-python";
32 tag = version;
33 hash = "sha256-ZOkXJ1NN3qmHABfOBpR1tECCIfAwwVMGyLBbU1jYowc=";
34 };
35
36 build-system = [ setuptools ];
37
38 dependencies = [
39 aiohttp
40 aiohttp-retry
41 pyjwt
42 pyngrok
43 pytz
44 requests
45 ];
46
47 nativeCheckInputs = [
48 aiounittest
49 cryptography
50 django
51 mock
52 multidict
53 pytestCheckHook
54 ];
55
56 disabledTests = [
57 # Tests require network access
58 "test_set_default_user_agent"
59 "test_set_user_agent_extensions"
60 ];
61
62 disabledTestPaths = [
63 # Tests require API token
64 "tests/cluster/test_webhook.py"
65 "tests/cluster/test_cluster.py"
66 ];
67
68 pythonImportsCheck = [ "twilio" ];
69
70 meta = with lib; {
71 description = "Twilio API client and TwiML generator";
72 homepage = "https://github.com/twilio/twilio-python/";
73 changelog = "https://github.com/twilio/twilio-python/blob/${src.tag}/CHANGES.md";
74 license = licenses.mit;
75 maintainers = with maintainers; [ fab ];
76 };
77}