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.80";
18
19 src = fetchPypi {
20 inherit pname version;
21 sha256 = "46847ca703de3f483fbd0b2d22622f36eff03e6ef7ec7704d4ecaa3964cb2220";
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}