1{ lib
2, argon2_cffi
3, buildPythonPackage
4, cbor
5, cbor2
6, cffi
7, cryptography
8, fetchPypi
9, flatbuffers
10, mock
11, msgpack
12, passlib
13, pynacl
14, pytest-asyncio
15, pytestCheckHook
16, pythonOlder
17, twisted
18, py-ubjson
19, txaio
20, ujson
21, zope_interface
22}:
23
24buildPythonPackage rec {
25 pname = "autobahn";
26 version = "21.3.1";
27 disabled = pythonOlder "3.7";
28
29 src = fetchPypi {
30 inherit pname version;
31 sha256 = "00wf9dkfgakg80gy62prg650lb8zz9y9fdlxwxcznwp8hgsw29p1";
32 };
33
34 propagatedBuildInputs = [
35 argon2_cffi
36 cbor
37 cbor2
38 cffi
39 cryptography
40 flatbuffers
41 msgpack
42 passlib
43 py-ubjson
44 pynacl
45 twisted
46 txaio
47 ujson
48 zope_interface
49 ];
50
51 checkInputs = [
52 mock
53 pytest-asyncio
54 pytestCheckHook
55 ];
56
57 postPatch = ''
58 substituteInPlace setup.py \
59 --replace "pytest>=2.8.6,<3.3.0" "pytest"
60 '';
61
62 preCheck = ''
63 # Run asyncio tests (requires twisted)
64 export USE_ASYNCIO=1
65 '';
66
67 pytestFlagsArray = [ "--pyargs autobahn" ];
68
69 pythonImportsCheck = [ "autobahn" ];
70
71 meta = with lib; {
72 description = "WebSocket and WAMP in Python for Twisted and asyncio";
73 homepage = "https://crossbar.io/autobahn";
74 license = licenses.mit;
75 maintainers = with maintainers; [ ];
76 };
77}