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