stripe-cli: 1.23.3 -> 1.23.5 (#375724)
[NixPkgs.git] / pkgs / development / python-modules / ipython / default.nix
blob7a14e5f144d34ccb8f4fae2ae2beec1daf9c135c
2   lib,
3   stdenv,
4   buildPythonPackage,
5   fetchPypi,
6   pythonAtLeast,
7   pythonOlder,
9   # Build dependencies
10   setuptools,
12   # Runtime dependencies
13   decorator,
14   exceptiongroup,
15   jedi,
16   matplotlib-inline,
17   pexpect,
18   prompt-toolkit,
19   pygments,
20   stack-data,
21   traitlets,
22   typing-extensions,
24   # Optional dependencies
25   ipykernel,
26   ipyparallel,
27   ipywidgets,
28   matplotlib,
29   nbconvert,
30   nbformat,
31   notebook,
32   qtconsole,
34   # Reverse dependency
35   sage,
37   # Test dependencies
38   pickleshare,
39   pytest-asyncio,
40   pytestCheckHook,
41   testpath,
44 buildPythonPackage rec {
45   pname = "ipython";
46   version = "8.30.0";
47   pyproject = true;
48   disabled = pythonOlder "3.10";
50   src = fetchPypi {
51     inherit pname version;
52     hash = "sha256-ywpAWjBtKZWly7mQGJTSQHhKnzQTlMa6P0/oxuuJ/24=";
53   };
55   build-system = [ setuptools ];
57   dependencies =
58     [
59       decorator
60       jedi
61       matplotlib-inline
62       pexpect
63       prompt-toolkit
64       pygments
65       stack-data
66       traitlets
67     ]
68     ++ lib.optionals (pythonOlder "3.11") [ exceptiongroup ]
69     ++ lib.optionals (pythonOlder "3.12") [ typing-extensions ];
71   optional-dependencies = {
72     kernel = [ ipykernel ];
73     nbconvert = [ nbconvert ];
74     nbformat = [ nbformat ];
75     notebook = [
76       ipywidgets
77       notebook
78     ];
79     parallel = [ ipyparallel ];
80     qtconsole = [ qtconsole ];
81     matplotlib = [ matplotlib ];
82   };
84   pythonImportsCheck = [ "IPython" ];
86   preCheck = ''
87     export HOME=$TMPDIR
89     # doctests try to fetch an image from the internet
90     substituteInPlace pyproject.toml \
91       --replace-fail '"--ipdoctest-modules",' '"--ipdoctest-modules", "--ignore=IPython/core/display.py",'
92   '';
94   nativeCheckInputs = [
95     pickleshare
96     pytest-asyncio
97     pytestCheckHook
98     testpath
99   ];
101   disabledTests =
102     [
103       # UnboundLocalError: local variable 'child' referenced before assignment
104       "test_system_interrupt"
105     ]
106     ++ lib.optionals (pythonAtLeast "3.13") [
107       # AttributeError: 'Pdb' object has no attribute 'curframe'. Did you mean: 'botframe'?
108       "test_run_debug_twice"
109       "test_run_debug_twice_with_breakpoint"
110     ]
111     ++ lib.optionals (stdenv.hostPlatform.isDarwin) [
112       # FileNotFoundError: [Errno 2] No such file or directory: 'pbpaste'
113       "test_clipboard_get"
114     ];
116   passthru.tests = {
117     inherit sage;
118   };
120   meta = with lib; {
121     description = "IPython: Productive Interactive Computing";
122     downloadPage = "https://github.com/ipython/ipython/";
123     homepage = "https://ipython.org/";
124     changelog = "https://github.com/ipython/ipython/blob/${version}/docs/source/whatsnew/version${lib.versions.major version}.rst";
125     license = licenses.bsd3;
126     maintainers = with maintainers; [ bjornfor ] ++ teams.jupyter.members;
127   };