about summary refs log tree commit diff
path: root/pkgs/development
diff options
context:
space:
mode:
authorSandro <sandro.jaeckel@gmail.com>2023-03-10 23:11:26 +0100
committerGitHub <noreply@github.com>2023-03-10 23:11:26 +0100
commit46e5d1e23128c44bf5d4dabef82f496797458bc1 (patch)
tree56cb9d7a00b3479fbed1a99aabe4cccb0a1b30bd /pkgs/development
parent2f357f268afac07d6cba6b9969f2064d9b8c1f56 (diff)
parente730867dc051f9f9f6bd0b641838a24b74cad4c8 (diff)
Merge pull request #217517 from savyajha/radian
Diffstat (limited to 'pkgs/development')
-rw-r--r--pkgs/development/python-modules/lineedit/default.nix45
-rw-r--r--pkgs/development/python-modules/radian/default.nix71
-rw-r--r--pkgs/development/python-modules/rchitect/default.nix52
-rw-r--r--pkgs/development/r-modules/wrapper-radian.nix37
4 files changed, 205 insertions, 0 deletions
diff --git a/pkgs/development/python-modules/lineedit/default.nix b/pkgs/development/python-modules/lineedit/default.nix
new file mode 100644
index 0000000000000..5631054627646
--- /dev/null
+++ b/pkgs/development/python-modules/lineedit/default.nix
@@ -0,0 +1,45 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, pygments
+, six
+, wcwidth
+, pytestCheckHook
+, pyte
+, ptyprocess
+, pexpect
+}:
+
+buildPythonPackage rec {
+  pname = "lineedit";
+  version = "0.1.6";
+
+  src = fetchFromGitHub {
+    owner = "randy3k";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "fq2NpjIQkIq1yzXEUxi6cz80kutVqcH6MqJXHtpTFsk=";
+  };
+
+  propagatedBuildInputs = [
+    pygments
+    six
+    wcwidth
+  ];
+
+  nativeCheckInputs = [
+    pytestCheckHook
+    pyte
+    pexpect
+    ptyprocess
+  ];
+
+  pythonImportsCheck = [ "lineedit" ];
+
+  meta = with lib; {
+    description = "A readline library based on prompt_toolkit which supports multiple modes";
+    homepage = "https://github.com/randy3k/lineedit";
+    license = licenses.mit;
+    maintainers = with maintainers; [ savyajha ];
+  };
+}
diff --git a/pkgs/development/python-modules/radian/default.nix b/pkgs/development/python-modules/radian/default.nix
new file mode 100644
index 0000000000000..d348c6e0c5612
--- /dev/null
+++ b/pkgs/development/python-modules/radian/default.nix
@@ -0,0 +1,71 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, pytestCheckHook
+, pyte
+, pexpect
+, ptyprocess
+, jedi
+, git
+, lineedit
+, prompt-toolkit
+, pygments
+, rchitect
+, six
+, R
+, rPackages
+}:
+
+buildPythonPackage rec {
+  pname = "radian";
+  version = "0.6.4";
+
+  src = fetchFromGitHub {
+    owner = "randy3k";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "QEHVdyVgsZxvs+d+xeeJqwx531+6e0uPi1J3t+hJ0d0=";
+  };
+
+  postPatch = ''
+    substituteInPlace setup.py --replace '"pytest-runner"' ""
+  '';
+
+  nativeBuildInputs = [
+    R # needed at setup time to detect R_HOME
+  ];
+
+  propagatedBuildInputs = [
+    lineedit
+    prompt-toolkit
+    pygments
+    rchitect
+    six
+  ] ++ (with rPackages; [
+    reticulate
+    askpass
+  ]);
+
+  nativeCheckInputs = [
+    pytestCheckHook
+    pyte
+    pexpect
+    ptyprocess
+    jedi
+    git
+  ];
+
+  preCheck = ''
+    export HOME=$TMPDIR
+    export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:${R}/lib/R/lib
+  '';
+
+  pythonImportsCheck = [ "radian" ];
+
+  meta = with lib; {
+    description = "A 21 century R console";
+    homepage = "https://github.com/randy3k/radian";
+    license = licenses.mit;
+    maintainers = with maintainers; [ savyajha ];
+  };
+}
diff --git a/pkgs/development/python-modules/rchitect/default.nix b/pkgs/development/python-modules/rchitect/default.nix
new file mode 100644
index 0000000000000..9e0b1b48d29db
--- /dev/null
+++ b/pkgs/development/python-modules/rchitect/default.nix
@@ -0,0 +1,52 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, cffi
+, six
+, pytestCheckHook
+, pytest-mock
+, R
+, rPackages }:
+
+buildPythonPackage rec {
+  pname = "rchitect";
+  version = "0.3.40";
+
+  src = fetchFromGitHub {
+    owner = "randy3k";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "yJMiPmusZ62dd6+5VkA2uSjq57a0C3arG8CgiUUHKpk=";
+  };
+
+  postPatch = ''
+    substituteInPlace setup.py --replace '"pytest-runner"' ""
+  '';
+
+  propagatedBuildInputs = [
+    cffi
+    six
+  ] ++ (with rPackages; [
+    reticulate
+  ]);
+
+  nativeCheckInputs = [
+    pytestCheckHook
+    pytest-mock
+    R
+  ];
+
+  preCheck = ''
+    export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:${R}/lib/R/lib
+    cd $TMPDIR
+  '';
+
+  pythonImportsCheck = [ "rchitect" ];
+
+  meta = with lib; {
+    description = "Interoperate R with Python";
+    homepage = "https://github.com/randy3k/rchitect";
+    license = licenses.mit;
+    maintainers = with maintainers; [ savyajha ];
+  };
+}
diff --git a/pkgs/development/r-modules/wrapper-radian.nix b/pkgs/development/r-modules/wrapper-radian.nix
new file mode 100644
index 0000000000000..a0a23222b5232
--- /dev/null
+++ b/pkgs/development/r-modules/wrapper-radian.nix
@@ -0,0 +1,37 @@
+{ lib
+, runCommand
+, R
+, radian
+, makeWrapper
+, recommendedPackages
+, packages
+, wrapR ? false
+}:
+
+runCommand (radian.name + "-wrapper") {
+  preferLocalBuild = true;
+  allowSubstitutes = false;
+
+  buildInputs = [ radian ] ++ recommendedPackages ++ packages
+    ++ lib.optional wrapR R;
+
+  nativeBuildInputs = [ makeWrapper ];
+
+  passthru = { inherit recommendedPackages; };
+
+  meta = radian.meta // {
+    # To prevent builds on hydra
+    hydraPlatforms = [ ];
+    # prefer wrapper over the package
+    priority = (radian.meta.priority or 0) - 1;
+  };
+} (''
+  makeWrapper "${radian}/bin/radian" "$out/bin/radian" \
+    --prefix "R_LIBS_SITE" ":" "$R_LIBS_SITE"
+'' + lib.optionalString wrapR ''
+  cd ${R}/bin
+  for exe in *; do
+    makeWrapper "${R}/bin/$exe" "$out/bin/$exe" \
+      --prefix "R_LIBS_SITE" ":" "$R_LIBS_SITE"
+  done
+'')