1{
2 lib,
3 aiohttp,
4 buildPythonPackage,
5 busypie,
6 cbor2,
7 fetchFromGitHub,
8 h2,
9 httpx,
10 pycryptodomex,
11 pytest-asyncio,
12 pytest-vcr,
13 pytestCheckHook,
14 pythonOlder,
15 requests,
16 setuptools,
17}:
18
19buildPythonPackage rec {
20 pname = "pubnub";
21 version = "10.3.0";
22 pyproject = true;
23
24 disabled = pythonOlder "3.7";
25
26 src = fetchFromGitHub {
27 owner = "pubnub";
28 repo = "python";
29 tag = version;
30 hash = "sha256-GkROhb8kgiHTLcXTMg9vYcuGNW8xpa5NKUzge78AqBU=";
31 };
32
33 pythonRelaxDeps = [ "httpx" ];
34
35 build-system = [ setuptools ];
36
37 dependencies = [
38 aiohttp
39 cbor2
40 h2
41 httpx
42 pycryptodomex
43 requests
44 ];
45
46 nativeCheckInputs = [
47 busypie
48 pytest-asyncio
49 pytest-vcr
50 pytestCheckHook
51 ];
52
53 disabledTestPaths = [
54 # Tests require network access
55 "tests/integrational"
56 "tests/manual"
57 "tests/functional/push"
58 ];
59
60 disabledTests = [
61 "test_subscribe"
62 "test_handshaking"
63 ];
64
65 pythonImportsCheck = [ "pubnub" ];
66
67 meta = with lib; {
68 description = "Python-based APIs for PubNub";
69 homepage = "https://github.com/pubnub/python";
70 changelog = "https://github.com/pubnub/python/releases/tag/${src.tag}";
71 # PubNub Software Development Kit License Agreement
72 # https://github.com/pubnub/python/blob/master/LICENSE
73 license = licenses.unfreeRedistributable;
74 maintainers = with maintainers; [ fab ];
75 };
76}