nixpkgs/pkgs/development/python-modules/bpython/default.nix

75 lines
1.5 KiB
Nix

{
lib,
buildPythonPackage,
fetchFromGitHub,
curtsies,
cwcwidth,
greenlet,
jedi,
pygments,
pytestCheckHook,
pyperclip,
pyxdg,
requests,
setuptools,
urwid,
watchdog,
}:
buildPythonPackage rec {
pname = "bpython";
version = "0.25";
pyproject = true;
src = fetchFromGitHub {
owner = "bpython";
repo = "bpython";
tag = version;
hash = "sha256-p5+IQiHNRRazqr+WRdx3Yw+ImG25tdZGLXvMf7woD9w=";
};
postPatch = ''
substituteInPlace setup.py \
--replace-fail 'version = "unknown"' 'version = "${version}"'
'';
build-system = [ setuptools ];
dependencies = [
curtsies
cwcwidth
greenlet
pygments
pyxdg
requests
];
optional-dependencies = {
clipboard = [ pyperclip ];
jedi = [ jedi ];
urwid = [ urwid ];
watch = [ watchdog ];
};
postInstall = ''
substituteInPlace "$out/share/applications/org.bpython-interpreter.bpython.desktop" \
--replace "Exec=/usr/bin/bpython" "Exec=bpython"
'';
nativeCheckInputs = [
pytestCheckHook
] ++ lib.flatten (lib.attrValues optional-dependencies);
pythonImportsCheck = [ "bpython" ];
meta = with lib; {
changelog = "https://github.com/bpython/bpython/blob/${src.tag}/CHANGELOG.rst";
description = "Fancy curses interface to the Python interactive interpreter";
homepage = "https://bpython-interpreter.org/";
license = licenses.mit;
maintainers = with maintainers; [
flokli
dotlambda
];
};
}