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, typing
21, backcall
22}:
23
24buildPythonPackage rec {
25 pname = "ipython";
26 version = "6.5.0";
27
28 src = fetchPypi {
29 inherit pname version;
30 sha256 = "b0f2ef9eada4a68ef63ee10b6dde4f35c840035c50fd24265f8052c98947d5a4";
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 simplegeneric
46 traitlets
47 prompt_toolkit
48 pexpect
49 backcall
50 ] ++ lib.optionals stdenv.isDarwin [appnope]
51 ++ lib.optionals (pythonOlder "3.5") [ typing ];
52
53 LC_ALL="en_US.UTF-8";
54
55 doCheck = false; # Circular dependency with ipykernel
56
57 checkPhase = ''
58 nosetests
59 '';
60
61 # IPython 6.0.0 and above does not support Python < 3.3.
62 # The last IPython version to support older Python versions
63 # is 5.3.x.
64 disabled = pythonOlder "3.3";
65
66 meta = {
67 description = "IPython: Productive Interactive Computing";
68 homepage = http://ipython.org/;
69 license = lib.licenses.bsd3;
70 maintainers = with lib.maintainers; [ bjornfor jgeerds fridh ];
71 };
72}