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