1{ stdenv, buildPythonPackage, fetchFromGitHub
2, aiohttp
3, eventlet
4, iana-etc
5, libredirect
6, mock
7, requests
8, six
9, tornado
10, websocket_client
11, websockets
12, pytestCheckHook
13}:
14
15buildPythonPackage rec {
16 pname = "python-engineio";
17 version = "3.13.2";
18
19 src = fetchFromGitHub {
20 owner = "miguelgrinberg";
21 repo = "python-engineio";
22 rev = "v${version}";
23 sha256 = "1hn5nnxp7y2dpf52vrwdxza2sqmzj8admcnwgjkmcxk65s2dhvy1";
24 };
25
26 propagatedBuildInputs = [
27 six
28 ];
29
30 checkInputs = [
31 aiohttp
32 eventlet
33 mock
34 requests
35 tornado
36 websocket_client
37 websockets
38 pytestCheckHook
39 ];
40
41 preCheck = stdenv.lib.optionalString stdenv.isLinux ''
42 echo "nameserver 127.0.0.1" > resolv.conf
43 export NIX_REDIRECTS=/etc/protocols=${iana-etc}/etc/protocols:/etc/resolv.conf=$(realpath resolv.conf) \
44 LD_PRELOAD=${libredirect}/lib/libredirect.so
45 '';
46 postCheck = "unset NIX_REDIRECTS LD_PRELOAD";
47
48 # somehow effective log level does not change?
49 disabledTests = [ "test_logger" ];
50
51 meta = with stdenv.lib; {
52 description = "Engine.IO server";
53 homepage = "https://github.com/miguelgrinberg/python-engineio/";
54 license = licenses.mit;
55 maintainers = [ maintainers.mic92 ];
56 };
57}