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, simplegeneric
16, traitlets
17, prompt_toolkit
18, pexpect
19, appnope
20}:
21
22buildPythonPackage rec {
23 pname = "ipython";
24 version = "6.1.0";
25 name = "${pname}-${version}";
26
27 src = fetchPypi {
28 inherit pname version;
29 sha256 = "5c53e8ee4d4bec27879982b9f3b4aa2d6e3cfd7b26782d250fa117f85bb29814";
30 };
31
32 prePatch = lib.optionalString stdenv.isDarwin ''
33 substituteInPlace setup.py --replace "'gnureadline'" " "
34 '';
35
36 buildInputs = [ glibcLocales ];
37
38 checkInputs = [ nose pygments ];
39
40 propagatedBuildInputs = [
41 jedi
42 decorator
43 pickleshare
44 simplegeneric
45 traitlets
46 prompt_toolkit
47 pexpect
48 ] ++ lib.optionals stdenv.isDarwin [appnope];
49
50 LC_ALL="en_US.UTF-8";
51
52 doCheck = false; # Circular dependency with ipykernel
53
54 checkPhase = ''
55 nosetests
56 '';
57
58 # IPython 6.0.0 and above does not support Python < 3.3.
59 # The last IPython version to support older Python versions
60 # is 5.3.x.
61 disabled = pythonOlder "3.3";
62
63 meta = {
64 description = "IPython: Productive Interactive Computing";
65 homepage = http://ipython.org/;
66 license = lib.licenses.bsd3;
67 maintainers = with lib.maintainers; [ bjornfor jgeerds fridh ];
68 };
69}