debugpy 1.8.5__zip → 1.8.7__zip
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {debugpy-1.8.5/src/debugpy.egg-info → debugpy-1.8.7}/PKG-INFO +1 -1
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydev_bundle/_pydev_calltip_util.py +19 -21
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydev_bundle/_pydev_completer.py +30 -30
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydev_bundle/_pydev_execfile.py +3 -1
- debugpy-1.8.7/src/debugpy/_vendored/pydevd/_pydev_bundle/_pydev_filesystem_encoding.py +43 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydev_bundle/_pydev_getopt.py +35 -32
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydev_bundle/_pydev_imports_tipper.py +83 -84
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydev_bundle/_pydev_jy_imports_tipper.py +92 -99
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydev_bundle/_pydev_log.py +2 -3
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydev_bundle/_pydev_saved_modules.py +51 -27
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydev_bundle/_pydev_sys_patch.py +11 -7
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydev_bundle/_pydev_tipper_common.py +6 -5
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydev_bundle/fsnotify/__init__.py +34 -38
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydev_bundle/pydev_console_utils.py +71 -69
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydev_bundle/pydev_import_hook.py +1 -3
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydev_bundle/pydev_imports.py +0 -1
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydev_bundle/pydev_ipython_console.py +14 -16
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydev_bundle/pydev_ipython_console_011.py +81 -93
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydev_bundle/pydev_is_thread_alive.py +3 -3
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydev_bundle/pydev_localhost.py +9 -8
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydev_bundle/pydev_log.py +33 -25
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydev_bundle/pydev_monkey.py +183 -170
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydev_bundle/pydev_monkey_qt.py +33 -29
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydev_bundle/pydev_override.py +6 -4
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydev_bundle/pydev_umd.py +19 -18
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydev_bundle/pydev_versioncheck.py +3 -3
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydev_runfiles/pydev_runfiles.py +165 -138
- debugpy-1.8.7/src/debugpy/_vendored/pydevd/_pydev_runfiles/pydev_runfiles_coverage.py +77 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydev_runfiles/pydev_runfiles_nose.py +35 -36
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydev_runfiles/pydev_runfiles_parallel.py +22 -23
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydev_runfiles/pydev_runfiles_parallel_client.py +37 -57
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydev_runfiles/pydev_runfiles_pytest2.py +54 -52
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydev_runfiles/pydev_runfiles_unittest.py +28 -37
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydev_runfiles/pydev_runfiles_xml_rpc.py +56 -53
- debugpy-1.8.7/src/debugpy/_vendored/pydevd/_pydevd_bundle/_debug_adapter/__main__pydevd_gen_debug_adapter_protocol.py +604 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/_debug_adapter/debugProtocol.json +551 -445
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/_debug_adapter/pydevd_base_schema.py +25 -29
- debugpy-1.8.7/src/debugpy/_vendored/pydevd/_pydevd_bundle/_debug_adapter/pydevd_schema.py +17458 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/_debug_adapter/pydevd_schema_log.py +11 -12
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevconsole_code.py +18 -19
- debugpy-1.8.7/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_additional_thread_info.py +41 -0
- debugpy-1.8.7/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_additional_thread_info_regular.py +328 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_api.py +263 -214
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_breakpoints.py +7 -10
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_bytecode_utils.py +187 -92
- debugpy-1.8.7/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_bytecode_utils_py311.py +105 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_code_to_source.py +46 -51
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_collect_bytecode_info.py +239 -176
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_comm.py +370 -297
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_comm_constants.py +78 -86
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_command_line_handling.py +55 -59
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_concurrency_analyser/pydevd_concurrency_logger.py +194 -58
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_concurrency_analyser/pydevd_thread_wrappers.py +2 -3
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_console.py +18 -23
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_constants.py +159 -127
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_custom_frames.py +10 -12
- debugpy-1.8.7/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_cython.c +55527 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_cython.pxd +15 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_cython.pyx +803 -511
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_cython_wrapper.py +18 -7
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_daemon_thread.py +32 -24
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_defaults.py +11 -13
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_dont_trace.py +16 -16
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_dont_trace_files.py +27 -2
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_exec2.py +1 -1
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_extension_api.py +4 -5
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_extension_utils.py +8 -10
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_filtering.py +50 -45
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_frame.py +462 -407
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_frame_utils.py +69 -61
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_gevent_integration.py +14 -16
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_import_class.py +27 -25
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_io.py +40 -42
- debugpy-1.8.7/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_json_debug_options.py +200 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_net_command.py +20 -19
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_net_command_factory_json.py +199 -108
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_net_command_factory_xml.py +121 -73
- debugpy-1.8.7/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_plugin_utils.py +208 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_process_net_command.py +206 -159
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_process_net_command_json.py +346 -334
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_referrers.py +75 -80
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_reload.py +35 -35
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_resolver.py +116 -124
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_runpy.py +44 -58
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_safe_repr.py +51 -55
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_save_locals.py +4 -2
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_signature.py +24 -24
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_source_mapping.py +19 -20
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_stackless.py +45 -49
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_suspended_frames.py +61 -58
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_thread_lifecycle.py +23 -13
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_timeout.py +29 -31
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_trace_dispatch.py +41 -11
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_trace_dispatch_regular.py +117 -55
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_traceproperty.py +11 -14
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_utils.py +90 -89
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_vars.py +106 -97
- debugpy-1.8.7/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_vm_type.py +40 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_xml.py +56 -46
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/pydevd_frame_eval_cython_wrapper.py +5 -5
- debugpy-1.8.7/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/pydevd_frame_eval_main.py +71 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/pydevd_frame_evaluator.c +11165 -5326
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/pydevd_frame_tracing.py +5 -6
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/pydevd_modify_bytecode.py +53 -56
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode/__init__.py +1 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode/bytecode.py +4 -6
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode/cfg.py +6 -26
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode/concrete.py +7 -21
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode/flags.py +5 -24
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode/instr.py +10 -34
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode/peephole_opt.py +1 -4
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode/tests/__init__.py +2 -6
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode/tests/test_bytecode.py +3 -5
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode/tests/test_cfg.py +11 -31
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode/tests/test_code.py +2 -2
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode/tests/test_concrete.py +14 -41
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode/tests/test_flags.py +2 -4
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode/tests/test_instr.py +7 -18
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode/tests/test_misc.py +6 -18
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode/tests/test_peephole_opt.py +7 -18
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode/tests/util_annotation.py +1 -3
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/pydevd_fix_code.py +14 -19
- debugpy-1.8.7/src/debugpy/_vendored/pydevd/_pydevd_sys_monitoring/_pydevd_sys_monitoring.py +1929 -0
- debugpy-1.8.7/src/debugpy/_vendored/pydevd/_pydevd_sys_monitoring/_pydevd_sys_monitoring_cython.c +43253 -0
- debugpy-1.8.7/src/debugpy/_vendored/pydevd/_pydevd_sys_monitoring/_pydevd_sys_monitoring_cython.pxd +46 -0
- debugpy-1.8.7/src/debugpy/_vendored/pydevd/_pydevd_sys_monitoring/_pydevd_sys_monitoring_cython.pyx +1935 -0
- debugpy-1.8.7/src/debugpy/_vendored/pydevd/_pydevd_sys_monitoring/pydevd_sys_monitoring.py +16 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydev_app_engine_debug_startup.py +12 -11
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydev_coverage.py +30 -32
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydev_ipython/inputhook.py +58 -54
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydev_ipython/inputhookglut.py +20 -24
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydev_ipython/inputhookgtk.py +8 -7
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydev_ipython/inputhookgtk3.py +8 -6
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydev_ipython/inputhookpyglet.py +11 -8
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydev_ipython/inputhookqt4.py +21 -18
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydev_ipython/inputhookqt5.py +17 -15
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydev_ipython/inputhookqt6.py +17 -15
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydev_ipython/inputhooktk.py +6 -4
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydev_ipython/inputhookwx.py +14 -10
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydev_ipython/matplotlibtools.py +30 -26
- debugpy-1.8.7/src/debugpy/_vendored/pydevd/pydev_ipython/qt.py +24 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydev_ipython/qt_for_kernel.py +37 -34
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydev_ipython/qt_loaders.py +86 -73
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydev_ipython/version.py +7 -7
- debugpy-1.8.7/src/debugpy/_vendored/pydevd/pydev_pysrc.py +1 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydev_run_in_console.py +23 -24
- debugpy-1.8.7/src/debugpy/_vendored/pydevd/pydev_sitecustomize/sitecustomize.py +267 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevconsole.py +55 -47
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd.py +732 -508
- debugpy-1.8.7/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/_always_live_program.py +40 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/_check.py +1 -0
- debugpy-1.8.7/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/_test_attach_to_process.py +11 -0
- debugpy-1.8.7/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/_test_attach_to_process_linux.py +75 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/add_code_to_python_process.py +130 -125
- debugpy-1.8.7/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/attach_amd64.dll +0 -0
- debugpy-1.8.7/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/attach_amd64.pdb +0 -0
- debugpy-1.8.7/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/attach_pydevd.py +89 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/attach_script.py +41 -32
- debugpy-1.8.7/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/attach_x86.dll +0 -0
- debugpy-1.8.7/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/attach_x86.pdb +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/common/py_utils.hpp +1 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/common/py_version.hpp +9 -1
- debugpy-1.8.7/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/inject_dll_amd64.exe +0 -0
- debugpy-1.8.7/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/inject_dll_amd64.pdb +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/inject_dll_x86.exe +0 -0
- debugpy-1.8.7/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/inject_dll_x86.pdb +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/linux_and_mac/lldb_prepare.py +10 -9
- debugpy-1.8.7/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/run_code_on_dllmain_amd64.dll +0 -0
- debugpy-1.8.7/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/run_code_on_dllmain_amd64.pdb +0 -0
- debugpy-1.8.7/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/run_code_on_dllmain_x86.dll +0 -0
- debugpy-1.8.7/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/run_code_on_dllmain_x86.pdb +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/__init__.py +103 -119
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/breakpoint.py +457 -516
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/compat.py +33 -15
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/crash.py +336 -281
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/debug.py +101 -131
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/disasm.py +148 -153
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/event.py +310 -302
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/interactive.py +235 -208
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/module.py +185 -218
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/process.py +428 -564
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/registry.py +54 -53
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/search.py +69 -73
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/sql.py +158 -170
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/system.py +143 -213
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/textio.py +302 -333
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/thread.py +220 -239
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/util.py +198 -177
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/win32/__init__.py +11 -11
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/win32/advapi32.py +1191 -713
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/win32/context_amd64.py +248 -194
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/win32/context_i386.py +132 -120
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/win32/dbghelp.py +450 -346
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/win32/defines.py +305 -286
- debugpy-1.8.7/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/win32/gdi32.py +526 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/win32/kernel32.py +1479 -1097
- debugpy-1.8.7/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/win32/ntdll.py +579 -0
- debugpy-1.8.7/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/win32/peb_teb.py +3517 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/win32/psapi.py +54 -31
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/win32/shell32.py +170 -149
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/win32/shlwapi.py +190 -108
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/win32/user32.py +542 -437
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/win32/version.py +489 -442
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/win32/wtsapi32.py +83 -65
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/window.py +70 -76
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/windows/attach.cpp +17 -9
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/windows/compile_windows.bat +1 -1
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_file_utils.py +141 -120
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_plugins/__init__.py +1 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_plugins/django_debug.py +175 -149
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_plugins/extensions/__init__.py +1 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_plugins/extensions/types/__init__.py +1 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_plugins/extensions/types/pydevd_helpers.py +5 -5
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_plugins/extensions/types/pydevd_plugin_numpy_types.py +28 -28
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_plugins/extensions/types/pydevd_plugin_pandas_types.py +22 -30
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_plugins/extensions/types/pydevd_plugins_django_form_str.py +3 -2
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_plugins/jinja2_debug.py +130 -108
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_plugins/pydevd_line_validation.py +27 -14
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_tracing.py +85 -66
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/setup_pydevd_cython.py +96 -59
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_version.py +3 -3
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/common/messaging.py +2 -1
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/server/cli.py +32 -17
- {debugpy-1.8.5 → debugpy-1.8.7/src/debugpy.egg-info}/PKG-INFO +1 -1
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy.egg-info/SOURCES.txt +6 -1
- debugpy-1.8.5/src/debugpy/_vendored/pydevd/_pydev_bundle/_pydev_filesystem_encoding.py +0 -41
- debugpy-1.8.5/src/debugpy/_vendored/pydevd/_pydev_runfiles/pydev_runfiles_coverage.py +0 -76
- debugpy-1.8.5/src/debugpy/_vendored/pydevd/_pydevd_bundle/_debug_adapter/__main__pydevd_gen_debug_adapter_protocol.py +0 -592
- debugpy-1.8.5/src/debugpy/_vendored/pydevd/_pydevd_bundle/_debug_adapter/pydevd_schema.py +0 -19514
- debugpy-1.8.5/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_additional_thread_info.py +0 -19
- debugpy-1.8.5/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_additional_thread_info_regular.py +0 -153
- debugpy-1.8.5/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_cython.c +0 -43377
- debugpy-1.8.5/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_json_debug_options.py +0 -204
- debugpy-1.8.5/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_plugin_utils.py +0 -91
- debugpy-1.8.5/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_trace_api.py +0 -62
- debugpy-1.8.5/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_vm_type.py +0 -41
- debugpy-1.8.5/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/pydevd_frame_eval_main.py +0 -48
- debugpy-1.8.5/src/debugpy/_vendored/pydevd/pydev_ipython/qt.py +0 -23
- debugpy-1.8.5/src/debugpy/_vendored/pydevd/pydev_pysrc.py +0 -1
- debugpy-1.8.5/src/debugpy/_vendored/pydevd/pydev_sitecustomize/sitecustomize.py +0 -237
- debugpy-1.8.5/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/_always_live_program.py +0 -32
- debugpy-1.8.5/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/_test_attach_to_process.py +0 -9
- debugpy-1.8.5/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/_test_attach_to_process_linux.py +0 -74
- debugpy-1.8.5/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/attach_amd64.dll +0 -0
- debugpy-1.8.5/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/attach_amd64.pdb +0 -0
- debugpy-1.8.5/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/attach_pydevd.py +0 -79
- debugpy-1.8.5/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/attach_x86.dll +0 -0
- debugpy-1.8.5/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/attach_x86.pdb +0 -0
- debugpy-1.8.5/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/inject_dll_amd64.exe +0 -0
- debugpy-1.8.5/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/inject_dll_amd64.pdb +0 -0
- debugpy-1.8.5/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/inject_dll_x86.pdb +0 -0
- debugpy-1.8.5/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/run_code_on_dllmain_amd64.dll +0 -0
- debugpy-1.8.5/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/run_code_on_dllmain_amd64.pdb +0 -0
- debugpy-1.8.5/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/run_code_on_dllmain_x86.dll +0 -0
- debugpy-1.8.5/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/run_code_on_dllmain_x86.pdb +0 -0
- debugpy-1.8.5/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/win32/gdi32.py +0 -507
- debugpy-1.8.5/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/win32/ntdll.py +0 -539
- debugpy-1.8.5/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/win32/peb_teb.py +0 -3435
- {debugpy-1.8.5 → debugpy-1.8.7}/DESCRIPTION.md +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/LICENSE +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/MANIFEST.in +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/README.md +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/pyproject.toml +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/setup.cfg +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/setup.py +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/ThirdPartyNotices.txt +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/__init__.py +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/__main__.py +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/__init__.py +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/_pydevd_packaging.py +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/_util.py +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/force_pydevd.py +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydev_bundle/__init__.py +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydev_runfiles/__init__.py +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/__init__.py +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/_debug_adapter/__init__.py +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/_debug_adapter/debugProtocolCustom.json +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_concurrency_analyser/__init__.py +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/.gitignore +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/__init__.py +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/pydevd_frame_evaluator.pxd +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/pydevd_frame_evaluator.pyx +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/pydevd_frame_evaluator.template.pyx +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/release_mem.h +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/README.txt +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/__init__.py +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydev_ipython/README +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydev_ipython/__init__.py +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydev_sitecustomize/__not_in_default_pythonpath.txt +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/README.txt +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/common/py_custom_pyeval_settrace.hpp +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/common/py_custom_pyeval_settrace_310.hpp +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/common/py_custom_pyeval_settrace_311.hpp +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/common/py_custom_pyeval_settrace_common.hpp +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/common/py_settrace.hpp +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/common/python.h +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/common/ref_utils.hpp +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/linux_and_mac/.gitignore +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/linux_and_mac/attach.cpp +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/linux_and_mac/compile_linux.sh +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/linux_and_mac/compile_mac.sh +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/linux_and_mac/compile_manylinux.cmd +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/windows/attach.h +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/windows/inject_dll.cpp +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/windows/py_win_helpers.hpp +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/windows/run_code_in_memory.hpp +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/windows/run_code_on_dllmain.cpp +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/windows/stdafx.cpp +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/windows/stdafx.h +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/windows/targetver.h +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_plugins/extensions/README.md +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/adapter/__init__.py +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/adapter/__main__.py +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/adapter/clients.py +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/adapter/components.py +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/adapter/launchers.py +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/adapter/servers.py +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/adapter/sessions.py +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/common/__init__.py +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/common/json.py +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/common/log.py +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/common/singleton.py +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/common/sockets.py +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/common/stacks.py +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/common/timestamp.py +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/common/util.py +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/launcher/__init__.py +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/launcher/__main__.py +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/launcher/debuggee.py +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/launcher/handlers.py +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/launcher/output.py +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/launcher/winapi.py +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/public_api.py +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/server/__init__.py +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/server/api.py +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/server/attach_pid_injected.py +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy.egg-info/dependency_links.txt +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy.egg-info/entry_points.txt +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy.egg-info/top_level.txt +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/versioneer.py +0 -0
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
import os.path
|
|
2
|
+
import sys
|
|
3
|
+
from _pydevd_bundle.pydevd_constants import Null
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
# =======================================================================================================================
|
|
7
|
+
# get_coverage_files
|
|
8
|
+
# =======================================================================================================================
|
|
9
|
+
def get_coverage_files(coverage_output_dir, number_of_files):
|
|
10
|
+
base_dir = coverage_output_dir
|
|
11
|
+
ret = []
|
|
12
|
+
i = 0
|
|
13
|
+
while len(ret) < number_of_files:
|
|
14
|
+
while True:
|
|
15
|
+
f = os.path.join(base_dir, ".coverage.%s" % i)
|
|
16
|
+
i += 1
|
|
17
|
+
if not os.path.exists(f):
|
|
18
|
+
ret.append(f)
|
|
19
|
+
break # Break only inner for.
|
|
20
|
+
return ret
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
# =======================================================================================================================
|
|
24
|
+
# start_coverage_support
|
|
25
|
+
# =======================================================================================================================
|
|
26
|
+
def start_coverage_support(configuration):
|
|
27
|
+
return start_coverage_support_from_params(
|
|
28
|
+
configuration.coverage_output_dir,
|
|
29
|
+
configuration.coverage_output_file,
|
|
30
|
+
configuration.jobs,
|
|
31
|
+
configuration.coverage_include,
|
|
32
|
+
)
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
# =======================================================================================================================
|
|
36
|
+
# start_coverage_support_from_params
|
|
37
|
+
# =======================================================================================================================
|
|
38
|
+
def start_coverage_support_from_params(coverage_output_dir, coverage_output_file, jobs, coverage_include):
|
|
39
|
+
coverage_files = []
|
|
40
|
+
coverage_instance = Null()
|
|
41
|
+
if coverage_output_dir or coverage_output_file:
|
|
42
|
+
try:
|
|
43
|
+
import coverage # @UnresolvedImport
|
|
44
|
+
except:
|
|
45
|
+
sys.stderr.write("Error: coverage module could not be imported\n")
|
|
46
|
+
sys.stderr.write("Please make sure that the coverage module (http://nedbatchelder.com/code/coverage/)\n")
|
|
47
|
+
sys.stderr.write("is properly installed in your interpreter: %s\n" % (sys.executable,))
|
|
48
|
+
|
|
49
|
+
import traceback
|
|
50
|
+
|
|
51
|
+
traceback.print_exc()
|
|
52
|
+
else:
|
|
53
|
+
if coverage_output_dir:
|
|
54
|
+
if not os.path.exists(coverage_output_dir):
|
|
55
|
+
sys.stderr.write("Error: directory for coverage output (%s) does not exist.\n" % (coverage_output_dir,))
|
|
56
|
+
|
|
57
|
+
elif not os.path.isdir(coverage_output_dir):
|
|
58
|
+
sys.stderr.write("Error: expected (%s) to be a directory.\n" % (coverage_output_dir,))
|
|
59
|
+
|
|
60
|
+
else:
|
|
61
|
+
n = jobs
|
|
62
|
+
if n <= 0:
|
|
63
|
+
n += 1
|
|
64
|
+
n += 1 # Add 1 more for the current process (which will do the initial import).
|
|
65
|
+
coverage_files = get_coverage_files(coverage_output_dir, n)
|
|
66
|
+
os.environ["COVERAGE_FILE"] = coverage_files.pop(0)
|
|
67
|
+
|
|
68
|
+
coverage_instance = coverage.coverage(source=[coverage_include])
|
|
69
|
+
coverage_instance.start()
|
|
70
|
+
|
|
71
|
+
elif coverage_output_file:
|
|
72
|
+
# Client of parallel run.
|
|
73
|
+
os.environ["COVERAGE_FILE"] = coverage_output_file
|
|
74
|
+
coverage_instance = coverage.coverage(source=[coverage_include])
|
|
75
|
+
coverage_instance.start()
|
|
76
|
+
|
|
77
|
+
return coverage_files, coverage_instance
|
{debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydev_runfiles/pydev_runfiles_nose.py
RENAMED
|
@@ -9,11 +9,10 @@ from io import StringIO
|
|
|
9
9
|
import traceback
|
|
10
10
|
|
|
11
11
|
|
|
12
|
-
|
|
12
|
+
# =======================================================================================================================
|
|
13
13
|
# PydevPlugin
|
|
14
|
-
|
|
14
|
+
# =======================================================================================================================
|
|
15
15
|
class PydevPlugin(Plugin):
|
|
16
|
-
|
|
17
16
|
def __init__(self, configuration):
|
|
18
17
|
self.configuration = configuration
|
|
19
18
|
Plugin.__init__(self)
|
|
@@ -28,13 +27,13 @@ class PydevPlugin(Plugin):
|
|
|
28
27
|
self.coverage.stop()
|
|
29
28
|
self.coverage.save()
|
|
30
29
|
|
|
31
|
-
pydev_runfiles_xml_rpc.notifyTestRunFinished(
|
|
30
|
+
pydev_runfiles_xml_rpc.notifyTestRunFinished("Finished in: %.2f secs." % (time.time() - self.start_time,))
|
|
32
31
|
|
|
33
|
-
|
|
32
|
+
# ===================================================================================================================
|
|
34
33
|
# Methods below are not called with multiprocess (so, we monkey-patch MultiProcessTestRunner.consolidate
|
|
35
34
|
# so that they're called, but unfortunately we loose some info -- i.e.: the time for each test in this
|
|
36
35
|
# process).
|
|
37
|
-
|
|
36
|
+
# ===================================================================================================================
|
|
38
37
|
|
|
39
38
|
class Sentinel(object):
|
|
40
39
|
pass
|
|
@@ -46,8 +45,8 @@ class PydevPlugin(Plugin):
|
|
|
46
45
|
user_address = self.Sentinel
|
|
47
46
|
user_class_address = self.Sentinel
|
|
48
47
|
try:
|
|
49
|
-
if
|
|
50
|
-
user_address = user_test_instance.__dict__.pop(
|
|
48
|
+
if "address" in user_test_instance.__dict__:
|
|
49
|
+
user_address = user_test_instance.__dict__.pop("address")
|
|
51
50
|
except:
|
|
52
51
|
# Just ignore anything here.
|
|
53
52
|
pass
|
|
@@ -62,14 +61,14 @@ class PydevPlugin(Plugin):
|
|
|
62
61
|
yield
|
|
63
62
|
finally:
|
|
64
63
|
if user_address is not self.Sentinel:
|
|
65
|
-
user_test_instance.__dict__[
|
|
64
|
+
user_test_instance.__dict__["address"] = user_address
|
|
66
65
|
|
|
67
66
|
if user_class_address is not self.Sentinel:
|
|
68
67
|
user_test_instance.__class__.address = user_class_address
|
|
69
68
|
|
|
70
69
|
def _get_test_address(self, test):
|
|
71
70
|
try:
|
|
72
|
-
if hasattr(test,
|
|
71
|
+
if hasattr(test, "address"):
|
|
73
72
|
with self._without_user_address(test):
|
|
74
73
|
address = test.address()
|
|
75
74
|
|
|
@@ -86,30 +85,30 @@ class PydevPlugin(Plugin):
|
|
|
86
85
|
except TypeError:
|
|
87
86
|
# It may be an error at setup, in which case it's not really a test, but a Context object.
|
|
88
87
|
f = test.context.__file__
|
|
89
|
-
if f.endswith(
|
|
88
|
+
if f.endswith(".pyc"):
|
|
90
89
|
f = f[:-1]
|
|
91
|
-
elif f.endswith(
|
|
92
|
-
f = f[
|
|
93
|
-
address = f,
|
|
90
|
+
elif f.endswith("$py.class"):
|
|
91
|
+
f = f[: -len("$py.class")] + ".py"
|
|
92
|
+
address = f, "?"
|
|
94
93
|
except:
|
|
95
94
|
sys.stderr.write("PyDev: Internal pydev error getting test address. Please report at the pydev bug tracker\n")
|
|
96
95
|
traceback.print_exc()
|
|
97
96
|
sys.stderr.write("\n\n\n")
|
|
98
|
-
address =
|
|
97
|
+
address = "?", "?"
|
|
99
98
|
return address
|
|
100
99
|
|
|
101
|
-
def report_cond(self, cond, test, captured_output, error=
|
|
102
|
-
|
|
100
|
+
def report_cond(self, cond, test, captured_output, error=""):
|
|
101
|
+
"""
|
|
103
102
|
@param cond: fail, error, ok
|
|
104
|
-
|
|
103
|
+
"""
|
|
105
104
|
|
|
106
105
|
address = self._get_test_address(test)
|
|
107
106
|
|
|
108
107
|
error_contents = self.get_io_from_error(error)
|
|
109
108
|
try:
|
|
110
|
-
time_str =
|
|
109
|
+
time_str = "%.2f" % (time.time() - test._pydev_start_time)
|
|
111
110
|
except:
|
|
112
|
-
time_str =
|
|
111
|
+
time_str = "?"
|
|
113
112
|
|
|
114
113
|
pydev_runfiles_xml_rpc.notifyTest(cond, captured_output, error_contents, address[0], address[1], time_str)
|
|
115
114
|
|
|
@@ -132,13 +131,13 @@ class PydevPlugin(Plugin):
|
|
|
132
131
|
return err
|
|
133
132
|
|
|
134
133
|
def get_captured_output(self, test):
|
|
135
|
-
if hasattr(test,
|
|
134
|
+
if hasattr(test, "capturedOutput") and test.capturedOutput:
|
|
136
135
|
return test.capturedOutput
|
|
137
|
-
return
|
|
136
|
+
return ""
|
|
138
137
|
|
|
139
138
|
def addError(self, test, err):
|
|
140
139
|
self.report_cond(
|
|
141
|
-
|
|
140
|
+
"error",
|
|
142
141
|
test,
|
|
143
142
|
self.get_captured_output(test),
|
|
144
143
|
err,
|
|
@@ -146,7 +145,7 @@ class PydevPlugin(Plugin):
|
|
|
146
145
|
|
|
147
146
|
def addFailure(self, test, err):
|
|
148
147
|
self.report_cond(
|
|
149
|
-
|
|
148
|
+
"fail",
|
|
150
149
|
test,
|
|
151
150
|
self.get_captured_output(test),
|
|
152
151
|
err,
|
|
@@ -154,10 +153,10 @@ class PydevPlugin(Plugin):
|
|
|
154
153
|
|
|
155
154
|
def addSuccess(self, test):
|
|
156
155
|
self.report_cond(
|
|
157
|
-
|
|
156
|
+
"ok",
|
|
158
157
|
test,
|
|
159
158
|
self.get_captured_output(test),
|
|
160
|
-
|
|
159
|
+
"",
|
|
161
160
|
)
|
|
162
161
|
|
|
163
162
|
|
|
@@ -173,33 +172,33 @@ def start_pydev_nose_plugin_singleton(configuration):
|
|
|
173
172
|
original = MultiProcessTestRunner.consolidate
|
|
174
173
|
|
|
175
174
|
|
|
176
|
-
|
|
175
|
+
# =======================================================================================================================
|
|
177
176
|
# new_consolidate
|
|
178
|
-
|
|
177
|
+
# =======================================================================================================================
|
|
179
178
|
def new_consolidate(self, result, batch_result):
|
|
180
|
-
|
|
179
|
+
"""
|
|
181
180
|
Used so that it can work with the multiprocess plugin.
|
|
182
181
|
Monkeypatched because nose seems a bit unsupported at this time (ideally
|
|
183
182
|
the plugin would have this support by default).
|
|
184
|
-
|
|
183
|
+
"""
|
|
185
184
|
ret = original(self, result, batch_result)
|
|
186
185
|
|
|
187
186
|
parent_frame = sys._getframe().f_back
|
|
188
187
|
# addr is something as D:\pytesting1\src\mod1\hello.py:TestCase.testMet4
|
|
189
188
|
# so, convert it to what report_cond expects
|
|
190
|
-
addr = parent_frame.f_locals[
|
|
191
|
-
i = addr.rindex(
|
|
192
|
-
addr = [addr[:i], addr[i + 1:]]
|
|
189
|
+
addr = parent_frame.f_locals["addr"]
|
|
190
|
+
i = addr.rindex(":")
|
|
191
|
+
addr = [addr[:i], addr[i + 1 :]]
|
|
193
192
|
|
|
194
193
|
output, testsRun, failures, errors, errorClasses = batch_result
|
|
195
194
|
if failures or errors:
|
|
196
195
|
for failure in failures:
|
|
197
|
-
PYDEV_NOSE_PLUGIN_SINGLETON.report_cond(
|
|
196
|
+
PYDEV_NOSE_PLUGIN_SINGLETON.report_cond("fail", addr, output, failure)
|
|
198
197
|
|
|
199
198
|
for error in errors:
|
|
200
|
-
PYDEV_NOSE_PLUGIN_SINGLETON.report_cond(
|
|
199
|
+
PYDEV_NOSE_PLUGIN_SINGLETON.report_cond("error", addr, output, error)
|
|
201
200
|
else:
|
|
202
|
-
PYDEV_NOSE_PLUGIN_SINGLETON.report_cond(
|
|
201
|
+
PYDEV_NOSE_PLUGIN_SINGLETON.report_cond("ok", addr, output)
|
|
203
202
|
|
|
204
203
|
return ret
|
|
205
204
|
|
|
@@ -8,9 +8,9 @@ import threading
|
|
|
8
8
|
import sys
|
|
9
9
|
|
|
10
10
|
|
|
11
|
-
|
|
11
|
+
# =======================================================================================================================
|
|
12
12
|
# flatten_test_suite
|
|
13
|
-
|
|
13
|
+
# =======================================================================================================================
|
|
14
14
|
def flatten_test_suite(test_suite, ret):
|
|
15
15
|
if isinstance(test_suite, unittest.TestSuite):
|
|
16
16
|
for t in test_suite._tests:
|
|
@@ -20,11 +20,11 @@ def flatten_test_suite(test_suite, ret):
|
|
|
20
20
|
ret.append(test_suite)
|
|
21
21
|
|
|
22
22
|
|
|
23
|
-
|
|
23
|
+
# =======================================================================================================================
|
|
24
24
|
# execute_tests_in_parallel
|
|
25
|
-
|
|
25
|
+
# =======================================================================================================================
|
|
26
26
|
def execute_tests_in_parallel(tests, jobs, split, verbosity, coverage_files, coverage_include):
|
|
27
|
-
|
|
27
|
+
"""
|
|
28
28
|
@param tests: list(PydevTestSuite)
|
|
29
29
|
A list with the suites to be run
|
|
30
30
|
|
|
@@ -44,9 +44,10 @@ def execute_tests_in_parallel(tests, jobs, split, verbosity, coverage_files, cov
|
|
|
44
44
|
run.
|
|
45
45
|
|
|
46
46
|
It may also return False if in debug mode (in which case, multi-processes are not accepted)
|
|
47
|
-
|
|
47
|
+
"""
|
|
48
48
|
try:
|
|
49
49
|
from _pydevd_bundle.pydevd_comm import get_global_debugger
|
|
50
|
+
|
|
50
51
|
if get_global_debugger() is not None:
|
|
51
52
|
return False
|
|
52
53
|
except:
|
|
@@ -58,7 +59,7 @@ def execute_tests_in_parallel(tests, jobs, split, verbosity, coverage_files, cov
|
|
|
58
59
|
tests_queue = []
|
|
59
60
|
|
|
60
61
|
queue_elements = []
|
|
61
|
-
if split ==
|
|
62
|
+
if split == "module":
|
|
62
63
|
module_to_tests = {}
|
|
63
64
|
for test in tests:
|
|
64
65
|
lst = []
|
|
@@ -74,7 +75,7 @@ def execute_tests_in_parallel(tests, jobs, split, verbosity, coverage_files, cov
|
|
|
74
75
|
# Don't create jobs we will never use.
|
|
75
76
|
jobs = len(queue_elements)
|
|
76
77
|
|
|
77
|
-
elif split ==
|
|
78
|
+
elif split == "tests":
|
|
78
79
|
for test in tests:
|
|
79
80
|
lst = []
|
|
80
81
|
flatten_test_suite(test, lst)
|
|
@@ -86,7 +87,7 @@ def execute_tests_in_parallel(tests, jobs, split, verbosity, coverage_files, cov
|
|
|
86
87
|
jobs = len(queue_elements)
|
|
87
88
|
|
|
88
89
|
else:
|
|
89
|
-
raise AssertionError(
|
|
90
|
+
raise AssertionError("Do not know how to handle: %s" % (split,))
|
|
90
91
|
|
|
91
92
|
for test_cases in queue_elements:
|
|
92
93
|
test_queue_elements = []
|
|
@@ -97,14 +98,14 @@ def execute_tests_in_parallel(tests, jobs, split, verbosity, coverage_files, cov
|
|
|
97
98
|
# Support for jython 2.1 (__testMethodName is pseudo-private in the test case)
|
|
98
99
|
test_name = test_case.__class__.__name__ + "." + test_case._TestCase__testMethodName
|
|
99
100
|
|
|
100
|
-
test_queue_elements.append(test_case.__pydev_pyfile__ +
|
|
101
|
+
test_queue_elements.append(test_case.__pydev_pyfile__ + "|" + test_name)
|
|
101
102
|
|
|
102
103
|
tests_queue.append(test_queue_elements)
|
|
103
104
|
|
|
104
105
|
if jobs < 2:
|
|
105
106
|
return False
|
|
106
107
|
|
|
107
|
-
sys.stdout.write(
|
|
108
|
+
sys.stdout.write("Running tests in parallel with: %s jobs.\n" % (jobs,))
|
|
108
109
|
|
|
109
110
|
queue = Queue.Queue()
|
|
110
111
|
for item in tests_queue:
|
|
@@ -134,7 +135,7 @@ def execute_tests_in_parallel(tests, jobs, split, verbosity, coverage_files, cov
|
|
|
134
135
|
# Wait for all the clients to exit.
|
|
135
136
|
if not client.finished:
|
|
136
137
|
client_alive = True
|
|
137
|
-
time.sleep(.2)
|
|
138
|
+
time.sleep(0.2)
|
|
138
139
|
break
|
|
139
140
|
|
|
140
141
|
for provider in providers:
|
|
@@ -143,11 +144,10 @@ def execute_tests_in_parallel(tests, jobs, split, verbosity, coverage_files, cov
|
|
|
143
144
|
return True
|
|
144
145
|
|
|
145
146
|
|
|
146
|
-
|
|
147
|
+
# =======================================================================================================================
|
|
147
148
|
# CommunicationThread
|
|
148
|
-
|
|
149
|
+
# =======================================================================================================================
|
|
149
150
|
class CommunicationThread(threading.Thread):
|
|
150
|
-
|
|
151
151
|
def __init__(self, tests_queue):
|
|
152
152
|
threading.Thread.__init__(self)
|
|
153
153
|
self.daemon = True
|
|
@@ -166,12 +166,12 @@ class CommunicationThread(threading.Thread):
|
|
|
166
166
|
self.server = server
|
|
167
167
|
|
|
168
168
|
def GetTestsToRun(self, job_id):
|
|
169
|
-
|
|
169
|
+
"""
|
|
170
170
|
@param job_id:
|
|
171
171
|
|
|
172
172
|
@return: list(str)
|
|
173
173
|
Each entry is a string in the format: filename|Test.testName
|
|
174
|
-
|
|
174
|
+
"""
|
|
175
175
|
try:
|
|
176
176
|
ret = self.queue.get(block=False)
|
|
177
177
|
return ret
|
|
@@ -195,13 +195,13 @@ class CommunicationThread(threading.Thread):
|
|
|
195
195
|
return True
|
|
196
196
|
|
|
197
197
|
def shutdown(self):
|
|
198
|
-
if hasattr(self.server,
|
|
198
|
+
if hasattr(self.server, "shutdown"):
|
|
199
199
|
self.server.shutdown()
|
|
200
200
|
else:
|
|
201
201
|
self._shutdown = True
|
|
202
202
|
|
|
203
203
|
def run(self):
|
|
204
|
-
if hasattr(self.server,
|
|
204
|
+
if hasattr(self.server, "shutdown"):
|
|
205
205
|
self.server.serve_forever()
|
|
206
206
|
else:
|
|
207
207
|
self._shutdown = False
|
|
@@ -209,11 +209,10 @@ class CommunicationThread(threading.Thread):
|
|
|
209
209
|
self.server.handle_request()
|
|
210
210
|
|
|
211
211
|
|
|
212
|
-
|
|
212
|
+
# =======================================================================================================================
|
|
213
213
|
# Client
|
|
214
|
-
|
|
214
|
+
# =======================================================================================================================
|
|
215
215
|
class ClientThread(threading.Thread):
|
|
216
|
-
|
|
217
216
|
def __init__(self, job_id, port, verbosity, coverage_output_file=None, coverage_include=None):
|
|
218
217
|
threading.Thread.__init__(self)
|
|
219
218
|
self.daemon = True
|
|
@@ -252,6 +251,7 @@ class ClientThread(threading.Thread):
|
|
|
252
251
|
args.append(self.coverage_include)
|
|
253
252
|
|
|
254
253
|
import subprocess
|
|
254
|
+
|
|
255
255
|
if False:
|
|
256
256
|
proc = subprocess.Popen(args, env=os.environ, shell=False, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
|
|
257
257
|
|
|
@@ -264,4 +264,3 @@ class ClientThread(threading.Thread):
|
|
|
264
264
|
|
|
265
265
|
finally:
|
|
266
266
|
self.finished = True
|
|
267
|
-
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
from _pydev_bundle.pydev_imports import xmlrpclib, _queue
|
|
2
|
+
|
|
2
3
|
Queue = _queue.Queue
|
|
3
4
|
import traceback
|
|
4
5
|
import sys
|
|
@@ -6,11 +7,10 @@ from _pydev_runfiles.pydev_runfiles_coverage import start_coverage_support_from_
|
|
|
6
7
|
import threading
|
|
7
8
|
|
|
8
9
|
|
|
9
|
-
|
|
10
|
+
# =======================================================================================================================
|
|
10
11
|
# ParallelNotification
|
|
11
|
-
|
|
12
|
+
# =======================================================================================================================
|
|
12
13
|
class ParallelNotification(object):
|
|
13
|
-
|
|
14
14
|
def __init__(self, method, args, kwargs):
|
|
15
15
|
self.method = method
|
|
16
16
|
self.args = args
|
|
@@ -20,25 +20,21 @@ class ParallelNotification(object):
|
|
|
20
20
|
return self.method, self.args, self.kwargs
|
|
21
21
|
|
|
22
22
|
|
|
23
|
-
|
|
23
|
+
# =======================================================================================================================
|
|
24
24
|
# KillServer
|
|
25
|
-
|
|
25
|
+
# =======================================================================================================================
|
|
26
26
|
class KillServer(object):
|
|
27
27
|
pass
|
|
28
28
|
|
|
29
29
|
|
|
30
|
-
|
|
31
|
-
#=======================================================================================================================
|
|
30
|
+
# =======================================================================================================================
|
|
32
31
|
# ServerComm
|
|
33
|
-
|
|
32
|
+
# =======================================================================================================================
|
|
34
33
|
class ServerComm(threading.Thread):
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
34
|
def __init__(self, job_id, server):
|
|
39
35
|
self.notifications_queue = Queue()
|
|
40
36
|
threading.Thread.__init__(self)
|
|
41
|
-
self.setDaemon(False)
|
|
37
|
+
self.setDaemon(False) # Wait for all the notifications to be passed before exiting!
|
|
42
38
|
assert job_id is not None
|
|
43
39
|
assert port is not None
|
|
44
40
|
self.job_id = job_id
|
|
@@ -46,7 +42,6 @@ class ServerComm(threading.Thread):
|
|
|
46
42
|
self.finished = False
|
|
47
43
|
self.server = server
|
|
48
44
|
|
|
49
|
-
|
|
50
45
|
def run(self):
|
|
51
46
|
while True:
|
|
52
47
|
kill_found = False
|
|
@@ -60,19 +55,18 @@ class ServerComm(threading.Thread):
|
|
|
60
55
|
|
|
61
56
|
try:
|
|
62
57
|
while True:
|
|
63
|
-
command = self.notifications_queue.get(block=False)
|
|
58
|
+
command = self.notifications_queue.get(block=False) # No block to create a batch.
|
|
64
59
|
if isinstance(command, KillServer):
|
|
65
60
|
kill_found = True
|
|
66
61
|
else:
|
|
67
62
|
assert isinstance(command, ParallelNotification)
|
|
68
63
|
commands.append(command.to_tuple())
|
|
69
64
|
except:
|
|
70
|
-
pass
|
|
71
|
-
|
|
65
|
+
pass # That's OK, we're getting it until it becomes empty so that we notify multiple at once.
|
|
72
66
|
|
|
73
67
|
if commands:
|
|
74
68
|
try:
|
|
75
|
-
#Batch notification.
|
|
69
|
+
# Batch notification.
|
|
76
70
|
self.server.lock.acquire()
|
|
77
71
|
try:
|
|
78
72
|
self.server.notifyCommands(self.job_id, commands)
|
|
@@ -86,44 +80,36 @@ class ServerComm(threading.Thread):
|
|
|
86
80
|
return
|
|
87
81
|
|
|
88
82
|
|
|
89
|
-
|
|
90
|
-
#=======================================================================================================================
|
|
83
|
+
# =======================================================================================================================
|
|
91
84
|
# ServerFacade
|
|
92
|
-
|
|
85
|
+
# =======================================================================================================================
|
|
93
86
|
class ServerFacade(object):
|
|
94
|
-
|
|
95
|
-
|
|
96
87
|
def __init__(self, notifications_queue):
|
|
97
88
|
self.notifications_queue = notifications_queue
|
|
98
89
|
|
|
99
|
-
|
|
100
90
|
def notifyTestsCollected(self, *args, **kwargs):
|
|
101
|
-
pass
|
|
102
|
-
|
|
91
|
+
pass # This notification won't be passed
|
|
103
92
|
|
|
104
93
|
def notifyTestRunFinished(self, *args, **kwargs):
|
|
105
|
-
pass
|
|
106
|
-
|
|
94
|
+
pass # This notification won't be passed
|
|
107
95
|
|
|
108
96
|
def notifyStartTest(self, *args, **kwargs):
|
|
109
|
-
self.notifications_queue.put_nowait(ParallelNotification(
|
|
110
|
-
|
|
97
|
+
self.notifications_queue.put_nowait(ParallelNotification("notifyStartTest", args, kwargs))
|
|
111
98
|
|
|
112
99
|
def notifyTest(self, *args, **kwargs):
|
|
113
|
-
self.notifications_queue.put_nowait(ParallelNotification(
|
|
114
|
-
|
|
100
|
+
self.notifications_queue.put_nowait(ParallelNotification("notifyTest", args, kwargs))
|
|
115
101
|
|
|
116
102
|
|
|
117
|
-
|
|
103
|
+
# =======================================================================================================================
|
|
118
104
|
# run_client
|
|
119
|
-
|
|
105
|
+
# =======================================================================================================================
|
|
120
106
|
def run_client(job_id, port, verbosity, coverage_output_file, coverage_include):
|
|
121
107
|
job_id = int(job_id)
|
|
122
108
|
|
|
123
109
|
from _pydev_bundle import pydev_localhost
|
|
124
|
-
server = xmlrpclib.Server('http://%s:%s' % (pydev_localhost.get_localhost(), port))
|
|
125
|
-
server.lock = threading.Lock()
|
|
126
110
|
|
|
111
|
+
server = xmlrpclib.Server("http://%s:%s" % (pydev_localhost.get_localhost(), port))
|
|
112
|
+
server.lock = threading.Lock()
|
|
127
113
|
|
|
128
114
|
server_comm = ServerComm(job_id, server)
|
|
129
115
|
server_comm.start()
|
|
@@ -132,17 +118,18 @@ def run_client(job_id, port, verbosity, coverage_output_file, coverage_include):
|
|
|
132
118
|
server_facade = ServerFacade(server_comm.notifications_queue)
|
|
133
119
|
from _pydev_runfiles import pydev_runfiles
|
|
134
120
|
from _pydev_runfiles import pydev_runfiles_xml_rpc
|
|
121
|
+
|
|
135
122
|
pydev_runfiles_xml_rpc.set_server(server_facade)
|
|
136
123
|
|
|
137
|
-
#Starts None and when the 1st test is gotten, it's started (because a server may be initiated and terminated
|
|
138
|
-
#before receiving any test -- which would mean a different process got all the tests to run).
|
|
124
|
+
# Starts None and when the 1st test is gotten, it's started (because a server may be initiated and terminated
|
|
125
|
+
# before receiving any test -- which would mean a different process got all the tests to run).
|
|
139
126
|
coverage = None
|
|
140
127
|
|
|
141
128
|
try:
|
|
142
129
|
tests_to_run = [1]
|
|
143
130
|
while tests_to_run:
|
|
144
|
-
#Investigate: is it dangerous to use the same xmlrpclib server from different threads?
|
|
145
|
-
#It seems it should be, as it creates a new connection for each request...
|
|
131
|
+
# Investigate: is it dangerous to use the same xmlrpclib server from different threads?
|
|
132
|
+
# It seems it should be, as it creates a new connection for each request...
|
|
146
133
|
server.lock.acquire()
|
|
147
134
|
try:
|
|
148
135
|
tests_to_run = server.GetTestsToRun(job_id)
|
|
@@ -153,27 +140,24 @@ def run_client(job_id, port, verbosity, coverage_output_file, coverage_include):
|
|
|
153
140
|
break
|
|
154
141
|
|
|
155
142
|
if coverage is None:
|
|
156
|
-
_coverage_files, coverage = start_coverage_support_from_params(
|
|
157
|
-
None, coverage_output_file, 1, coverage_include)
|
|
158
|
-
|
|
143
|
+
_coverage_files, coverage = start_coverage_support_from_params(None, coverage_output_file, 1, coverage_include)
|
|
159
144
|
|
|
160
145
|
files_to_tests = {}
|
|
161
146
|
for test in tests_to_run:
|
|
162
|
-
filename_and_test = test.split(
|
|
147
|
+
filename_and_test = test.split("|")
|
|
163
148
|
if len(filename_and_test) == 2:
|
|
164
149
|
files_to_tests.setdefault(filename_and_test[0], []).append(filename_and_test[1])
|
|
165
150
|
|
|
166
151
|
configuration = pydev_runfiles.Configuration(
|
|
167
|
-
|
|
152
|
+
"",
|
|
168
153
|
verbosity,
|
|
169
154
|
None,
|
|
170
155
|
None,
|
|
171
156
|
None,
|
|
172
157
|
files_to_tests,
|
|
173
|
-
1,
|
|
158
|
+
1, # Always single job here
|
|
174
159
|
None,
|
|
175
|
-
|
|
176
|
-
#The coverage is handled in this loop.
|
|
160
|
+
# The coverage is handled in this loop.
|
|
177
161
|
coverage_output_file=None,
|
|
178
162
|
coverage_include=None,
|
|
179
163
|
)
|
|
@@ -185,30 +169,26 @@ def run_client(job_id, port, verbosity, coverage_output_file, coverage_include):
|
|
|
185
169
|
coverage.stop()
|
|
186
170
|
coverage.save()
|
|
187
171
|
|
|
188
|
-
|
|
189
172
|
except:
|
|
190
173
|
traceback.print_exc()
|
|
191
174
|
server_comm.notifications_queue.put_nowait(KillServer())
|
|
192
175
|
|
|
193
176
|
|
|
194
|
-
|
|
195
|
-
#=======================================================================================================================
|
|
177
|
+
# =======================================================================================================================
|
|
196
178
|
# main
|
|
197
|
-
|
|
198
|
-
if __name__ ==
|
|
199
|
-
if len(sys.argv) -1 == 3:
|
|
179
|
+
# =======================================================================================================================
|
|
180
|
+
if __name__ == "__main__":
|
|
181
|
+
if len(sys.argv) - 1 == 3:
|
|
200
182
|
job_id, port, verbosity = sys.argv[1:]
|
|
201
183
|
coverage_output_file, coverage_include = None, None
|
|
202
184
|
|
|
203
|
-
elif len(sys.argv) -1 == 5:
|
|
185
|
+
elif len(sys.argv) - 1 == 5:
|
|
204
186
|
job_id, port, verbosity, coverage_output_file, coverage_include = sys.argv[1:]
|
|
205
187
|
|
|
206
188
|
else:
|
|
207
|
-
raise AssertionError(
|
|
189
|
+
raise AssertionError("Could not find out how to handle the parameters: " + sys.argv[1:])
|
|
208
190
|
|
|
209
191
|
job_id = int(job_id)
|
|
210
192
|
port = int(port)
|
|
211
193
|
verbosity = int(verbosity)
|
|
212
194
|
run_client(job_id, port, verbosity, coverage_output_file, coverage_include)
|
|
213
|
-
|
|
214
|
-
|