1{
2 lib,
3 stdenv,
4 buildPythonPackage,
5 fetchFromGitHub,
6 setuptools,
7 hatchling,
8 plumbum,
9 pytestCheckHook,
10 pythonOlder,
11 pythonAtLeast,
12}:
13
14buildPythonPackage rec {
15 pname = "rpyc4";
16 # Pinned version for linien, see also:
17 # https://github.com/linien-org/pyrp3/pull/10#discussion_r1302816237
18 version = "4.1.5";
19 format = "pyproject";
20
21 # Since this is an outdated version, upstream might have fixed the
22 # compatibility issues with Python3.12, but we can't enjoy them yet.
23 disabled = pythonOlder "3.7" || pythonAtLeast "3.12";
24
25 src = fetchFromGitHub {
26 owner = "tomerfiliba";
27 repo = "rpyc";
28 rev = version;
29 hash = "sha256-8NOcXZDR3w0TNj1+LZ7lzQAt7yDgspjOp2zk1bsbVls=";
30 };
31
32 nativeBuildInputs = [
33 setuptools
34 hatchling
35 ];
36
37 propagatedBuildInputs = [ plumbum ];
38
39 nativeCheckInputs = [ pytestCheckHook ];
40
41 disabledTests = [
42 # Disable tests that requires network access
43 "test_api"
44 "test_close_timeout"
45 "test_deploy"
46 "test_listing"
47 "test_pruning"
48 "test_rpyc"
49 # Test is outdated
50 # ssl.SSLError: [SSL: NO_CIPHERS_AVAILABLE] no ciphers available (_ssl.c:997)
51 "test_ssl_conenction"
52 ];
53 disabledTestPaths = [
54 "tests/test_ssh.py"
55 "tests/test_teleportation.py"
56 ];
57
58 pythonImportsCheck = [ "rpyc" ];
59
60 doCheck = !stdenv.isDarwin;
61
62 meta = with lib; {
63 description = "Remote Python Call (RPyC), a transparent and symmetric RPC library";
64 homepage = "https://rpyc.readthedocs.org";
65 changelog = "https://github.com/tomerfiliba-org/rpyc/blob/${version}/CHANGELOG.rst";
66 license = with licenses; [ mit ];
67 maintainers = with maintainers; [ fab ];
68 };
69}