1{ stdenv
2, buildPythonPackage
3, fetchPypi
4, lib
5, python
6, serpent
7, dill
8, cloudpickle
9, msgpack
10, isPy27
11, selectors34
12, pytest
13}:
14
15buildPythonPackage rec {
16 pname = "Pyro4";
17 version = "4.77";
18
19 src = fetchPypi {
20 inherit pname version;
21 sha256 = "2bfe12a22f396474b0e57c898c7e2c561a8f850bf2055d8cf0f7119f0c7a523f";
22 };
23
24 propagatedBuildInputs = [
25 serpent
26 ] ++ lib.optionals isPy27 [ selectors34 ];
27
28 buildInputs = [
29 dill
30 cloudpickle
31 msgpack
32 ];
33
34 checkInputs = [ pytest ];
35 # add testsupport.py to PATH
36 # ignore network related tests, which fail in sandbox
37 checkPhase = ''
38 PYTHONPATH=tests/PyroTests:$PYTHONPATH
39 pytest -k 'not StartNSfunc \
40 and not Broadcast \
41 and not GetIP' \
42 --ignore=tests/PyroTests/test_naming.py
43 '';
44
45 meta = with stdenv.lib; {
46 description = "Distributed object middleware for Python (RPC)";
47 homepage = https://github.com/irmen/Pyro4;
48 license = licenses.mit;
49 maintainers = with maintainers; [ prusnak ];
50 };
51}