1{ lib
2, stdenv
3, buildPythonPackage
4, fetchPypi
5, pythonOlder
6# Build dependencies
7, glibcLocales
8# Test dependencies
9, nose
10, pygments
11# Runtime dependencies
12, jedi
13, decorator
14, pickleshare
15, traitlets
16, prompt_toolkit
17, pexpect
18, appnope
19, backcall
20, fetchpatch
21}:
22
23buildPythonPackage rec {
24 pname = "ipython";
25 version = "7.17.0";
26 disabled = pythonOlder "3.6";
27
28 src = fetchPypi {
29 inherit pname version;
30 sha256 = "b70974aaa2674b05eb86a910c02ed09956a33f2dd6c71afc60f0b128a77e7f28";
31 };
32
33 prePatch = lib.optionalString stdenv.isDarwin ''
34 substituteInPlace setup.py --replace "'gnureadline'" " "
35 '';
36
37 buildInputs = [ glibcLocales ];
38
39 checkInputs = [ nose pygments ];
40
41 propagatedBuildInputs = [
42 jedi
43 decorator
44 pickleshare
45 traitlets
46 prompt_toolkit
47 pygments
48 pexpect
49 backcall
50 ] ++ lib.optionals stdenv.isDarwin [appnope];
51
52 LC_ALL="en_US.UTF-8";
53
54 doCheck = false; # Circular dependency with ipykernel
55
56 checkPhase = ''
57 nosetests
58 '';
59
60 pythonImportsCheck = [
61 "IPython"
62 ];
63
64 meta = with lib; {
65 description = "IPython: Productive Interactive Computing";
66 homepage = "http://ipython.org/";
67 license = licenses.bsd3;
68 maintainers = with maintainers; [ bjornfor fridh ];
69 };
70}