1{
2 lib,
3 buildPythonPackage,
4 fetchPypi,
5 pythonAtLeast,
6 pythonOlder,
7 decorator,
8 ipython,
9 isPyPy,
10 exceptiongroup,
11 tomli,
12 setuptools,
13 pytestCheckHook,
14 pytest-timeout,
15}:
16
17buildPythonPackage rec {
18 pname = "ipdb";
19 version = "0.13.13";
20 format = "pyproject";
21
22 disabled = isPyPy; # setupterm: could not find terminfo database
23
24 src = fetchPypi {
25 inherit pname version;
26 hash = "sha256-46xgGO8FEm1EKvaAqthjAG7BnQIpBWGsiLixwLDPxyY=";
27 };
28
29 nativeBuildInputs = [ setuptools ];
30
31 propagatedBuildInputs =
32 [
33 ipython
34 decorator
35 ]
36 ++ lib.optionals (pythonOlder "3.11") [
37 exceptiongroup
38 tomli
39 ];
40
41 nativeCheckInputs = [ pytestCheckHook ];
42
43 preCheck = ''
44 export HOME=$(mktemp -d)
45 '';
46
47 disabledTestPaths =
48 [
49 # OSError: pytest: reading from stdin while output is captured! Consider using `-s`.
50 "manual_test.py"
51 ]
52 ++ lib.optionals (pythonAtLeast "3.13") [
53 # tests get stuck
54 "tests/test_opts.py"
55 ];
56
57 meta = with lib; {
58 homepage = "https://github.com/gotcha/ipdb";
59 description = "IPython-enabled pdb";
60 mainProgram = "ipdb3";
61 license = licenses.bsd0;
62 maintainers = [ ];
63 };
64}