Unverified Commit 46e5d1e2 authored by Sandro Jäckel's avatar Sandro Jäckel Committed by GitHub
Browse files

Merge pull request #217517 from savyajha/radian

parents 2f357f26 e730867d
Loading
Loading
Loading
Loading
+6 −0
Original line number Diff line number Diff line
@@ -13288,6 +13288,12 @@
    githubId = 8534888;
    name = "Savanni D'Gerinel";
  };
  savyajha = {
    email = "savya.jha@hawkradius.com";
    github = "savyajha";
    githubId = 3996019;
    name = "Savyasachee Jha";
  };
  sayanarijit = {
    email = "sayanarijit@gmail.com";
    github = "sayanarijit";
+45 −0
Original line number Diff line number Diff line
{ 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 ];
  };
}
+71 −0
Original line number Diff line number Diff line
{ 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 ];
  };
}
+52 −0
Original line number Diff line number Diff line
{ 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 ];
  };
}
+37 −0
Original line number Diff line number Diff line
{ 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
'')
Loading