1{ lib
2, buildPythonPackage
3, fetchPypi
4, curtsies
5, cwcwidth
6, greenlet
7, jedi
8, pygments
9, pytestCheckHook
10, pythonOlder
11, pyperclip
12, pyxdg
13, requests
14, substituteAll
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 = [
52 pytestCheckHook
53 ];
54
55 pythonImportsCheck = [
56 "bpython"
57 ];
58
59 disabledTests = [
60 # Check for syntax error ends with an AssertionError
61 "test_syntaxerror"
62 ];
63
64 meta = with lib; {
65 description = "A fancy curses interface to the Python interactive interpreter";
66 homepage = "https://bpython-interpreter.org/";
67 license = licenses.mit;
68 maintainers = with maintainers; [ flokli dotlambda ];
69 };
70}