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