1{
2 stdenv,
3 lib,
4 buildPythonPackage,
5 fetchFromGitHub,
6 setuptools,
7 numpy,
8 psutil,
9 pytest-xdist,
10 pytestCheckHook,
11 pythonAtLeast,
12 pythonOlder,
13 trio,
14 untangle,
15}:
16
17buildPythonPackage rec {
18 pname = "pydevd";
19 version = "3.0.3";
20 pyproject = true;
21
22 disabled = pythonOlder "3.8";
23
24 src = fetchFromGitHub {
25 owner = "fabioz";
26 repo = "PyDev.Debugger";
27 rev = "pydev_debugger_${lib.replaceStrings [ "." ] [ "_" ] version}";
28 hash = "sha256-aylmLN7lVUza2lt2K48rJsx3XatXPgPjcmPZ05raLX0=";
29 };
30
31 __darwinAllowLocalNetworking = true;
32
33 build-system = [ setuptools ];
34
35 nativeCheckInputs = [
36 numpy
37 psutil
38 pytest-xdist
39 pytestCheckHook
40 trio
41 untangle
42 ];
43
44 disabledTests =
45 [
46 # Require network connection
47 "test_completion_sockets_and_messages"
48 "test_path_translation"
49 "test_attach_to_pid_no_threads"
50 "test_attach_to_pid_halted"
51 "test_remote_debugger_threads"
52 "test_path_translation_and_source_reference"
53 "test_attach_to_pid"
54 "test_terminate"
55 "test_gui_event_loop_custom"
56 # AssertionError: assert '/usr/bin/' == '/usr/bin'
57 # https://github.com/fabioz/PyDev.Debugger/issues/227
58 "test_to_server_and_to_client"
59 # AssertionError pydevd_tracing.set_trace_to_threads(tracing_func) == 0
60 "test_step_next_step_in_multi_threads"
61 "test_tracing_basic"
62 "test_tracing_other_threads"
63 # subprocess.CalledProcessError
64 "test_find_main_thread_id"
65 ]
66 ++ lib.optionals (pythonAtLeast "3.12") [
67 "test_case_handled_and_unhandled_exception_generator"
68 "test_case_stop_async_iteration_exception"
69 "test_case_unhandled_exception_generator"
70 "test_function_breakpoints_async"
71 # raise segmentation fault
72 # https://github.com/fabioz/PyDev.Debugger/issues/269
73 "test_evaluate_expression"
74 ]
75 ++ lib.optionals stdenv.isDarwin [
76 "test_multiprocessing_simple"
77 "test_evaluate_exception_trace"
78 ];
79
80 pythonImportsCheck = [ "pydevd" ];
81
82 meta = with lib; {
83 description = "PyDev.Debugger (used in PyDev, PyCharm and VSCode Python)";
84 homepage = "https://github.com/fabioz/PyDev.Debugger";
85 license = licenses.epl10;
86 maintainers = with maintainers; [ onny ];
87 mainProgram = "pydevd";
88 };
89}