1{
2 lib,
3 stdenv,
4 buildPythonPackage,
5 fetchFromGitHub,
6 hatchling,
7 plumbum,
8 pytestCheckHook,
9 pythonOlder,
10}:
11
12buildPythonPackage rec {
13 pname = "rpyc";
14 version = "6.0.2";
15 pyproject = true;
16
17 disabled = pythonOlder "3.7";
18
19 src = fetchFromGitHub {
20 owner = "tomerfiliba";
21 repo = "rpyc";
22 tag = version;
23 hash = "sha256-KLAOt0FStHV0senU/I4chxgn3PPM59CGhjTr/5U0sa8=";
24 };
25
26 build-system = [ hatchling ];
27
28 dependencies = [ plumbum ];
29
30 nativeCheckInputs = [ pytestCheckHook ];
31
32 preCheck = ''
33 export PYTHONPATH=$(pwd)/tests:$PYTHONPATH
34 '';
35
36 disabledTests = [
37 # Disable tests that requires network access
38 "test_api"
39 "test_close_timeout"
40 "test_deploy"
41 "test_listing"
42 "test_pruning"
43 "test_rpyc"
44 "test_instancecheck_across_connections"
45 # Internal import error
46 "test_modules"
47 # Test is outdated
48 # ssl.SSLError: [SSL: NO_CIPHERS_AVAILABLE] no ciphers available (_ssl.c:997)
49 "test_ssl_conenction"
50 ];
51
52 disabledTestPaths = [
53 # Internal import issue
54 "tests/test_attributes.py"
55 "tests/test_service_pickle.py"
56 "tests/test_affinity.py"
57 "tests/test_magic.py"
58 ];
59
60 pythonImportsCheck = [ "rpyc" ];
61
62 doCheck = !stdenv.hostPlatform.isDarwin;
63
64 meta = with lib; {
65 description = "Remote Python Call (RPyC), a transparent and symmetric RPC library";
66 homepage = "https://rpyc.readthedocs.org";
67 changelog = "https://github.com/tomerfiliba-org/rpyc/blob/${version}/CHANGELOG.rst";
68 license = with licenses; [ mit ];
69 maintainers = with maintainers; [ fab ];
70 };
71}