1{
2 lib,
3 buildPythonPackage,
4 fetchPypi,
5 curtsies,
6 cwcwidth,
7 greenlet,
8 jedi,
9 pygments,
10 pytestCheckHook,
11 pythonOlder,
12 pyperclip,
13 pyxdg,
14 requests,
15 typing-extensions,
16 urwid,
17 watchdog,
18}:
19
20buildPythonPackage rec {
21 pname = "bpython";
22 version = "0.24";
23 format = "setuptools";
24
25 disabled = pythonOlder "3.7";
26
27 src = fetchPypi {
28 inherit pname version;
29 hash = "sha256-mHNv/XqMSP0r+1PYmKR19CQb3gtnISVwavBNnQj9Pb0=";
30 };
31
32 propagatedBuildInputs = [
33 curtsies
34 cwcwidth
35 greenlet
36 jedi
37 pygments
38 pyperclip
39 pyxdg
40 requests
41 typing-extensions
42 urwid
43 watchdog
44 ];
45
46 postInstall = ''
47 substituteInPlace "$out/share/applications/org.bpython-interpreter.bpython.desktop" \
48 --replace "Exec=/usr/bin/bpython" "Exec=$out/bin/bpython"
49 '';
50
51 nativeCheckInputs = [ pytestCheckHook ];
52
53 pythonImportsCheck = [ "bpython" ];
54
55 disabledTests = [
56 # Check for syntax error ends with an AssertionError
57 "test_syntaxerror"
58 ];
59
60 meta = with lib; {
61 description = "Fancy curses interface to the Python interactive interpreter";
62 homepage = "https://bpython-interpreter.org/";
63 license = licenses.mit;
64 maintainers = with maintainers; [
65 flokli
66 dotlambda
67 ];
68 };
69}