1{
2 lib,
3 buildPythonPackage,
4 fetchFromGitHub,
5 cffi,
6 packaging,
7 pytestCheckHook,
8 pytest-mock,
9 pythonOlder,
10 R,
11 rPackages,
12 setuptools,
13 setuptools-scm,
14 six,
15}:
16
17buildPythonPackage rec {
18 pname = "rchitect";
19 version = "0.4.7";
20 pyproject = true;
21
22 disabled = pythonOlder "3.9";
23
24 src = fetchFromGitHub {
25 owner = "randy3k";
26 repo = pname;
27 tag = "v${version}";
28 hash = "sha256-M7OWDo3mEEOYtjIpzPIpzPMBtv2TZJKJkSfHczZYS8Y=";
29 };
30
31 postPatch = ''
32 substituteInPlace setup.py \
33 --replace '"pytest-runner"' ""
34 '';
35
36 build-system = [
37 setuptools
38 setuptools-scm
39 ];
40
41 propagatedBuildInputs = [
42 cffi
43 six
44 packaging
45 ] ++ (with rPackages; [ reticulate ]);
46
47 nativeCheckInputs = [
48 pytestCheckHook
49 pytest-mock
50 R
51 ];
52
53 preCheck = ''
54 export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:${R}/lib/R/lib
55 cd $TMPDIR
56 '';
57
58 pythonImportsCheck = [ "rchitect" ];
59
60 meta = with lib; {
61 description = "Interoperate R with Python";
62 homepage = "https://github.com/randy3k/rchitect";
63 changelog = "https://github.com/randy3k/rchitect/blob/v${version}/CHANGELOG.md";
64 license = licenses.mit;
65 maintainers = with maintainers; [ savyajha ];
66 };
67}