debugpy 1.8.7__zip → 1.8.9__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.7/src/debugpy.egg-info → debugpy-1.8.9}/PKG-INFO +1 -1
- {debugpy-1.8.7 → debugpy-1.8.9}/pyproject.toml +5 -2
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/_pydev_bundle/pydev_is_thread_alive.py +8 -1
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/_pydev_bundle/pydev_monkey.py +58 -24
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/_pydev_runfiles/pydev_runfiles_xml_rpc.py +1 -1
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/_pydevd_bundle/_debug_adapter/__main__pydevd_gen_debug_adapter_protocol.py +3 -1
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_api.py +2 -1
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_code_to_source.py +1 -2
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_collect_bytecode_info.py +6 -121
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_comm.py +9 -9
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_constants.py +8 -0
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_cython.c +3395 -3365
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_cython.pyx +7 -10
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_daemon_thread.py +1 -0
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_frame.py +6 -7
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_frame_utils.py +27 -24
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_plugin_utils.py +2 -2
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_process_net_command_json.py +2 -1
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_save_locals.py +17 -2
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_trace_dispatch_regular.py +1 -3
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/pydevd_frame_evaluator.c +651 -631
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/pydevd_modify_bytecode.py +2 -1
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode/concrete.py +1 -2
- debugpy-1.8.9/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode-0.13.0.dev0.dist-info/COPYING +21 -0
- debugpy-1.8.9/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode-0.13.0.dev0.dist-info/INSTALLER +1 -0
- debugpy-1.8.9/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode-0.13.0.dev0.dist-info/METADATA +77 -0
- debugpy-1.8.9/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode-0.13.0.dev0.dist-info/RECORD +42 -0
- debugpy-1.8.9/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode-0.13.0.dev0.dist-info/WHEEL +5 -0
- debugpy-1.8.9/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode-0.13.0.dev0.dist-info/direct_url.json +1 -0
- debugpy-1.8.9/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode-0.13.0.dev0.dist-info/top_level.txt +1 -0
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/_pydevd_sys_monitoring/_pydevd_sys_monitoring.py +138 -100
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/_pydevd_sys_monitoring/_pydevd_sys_monitoring_cython.c +7539 -5838
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/_pydevd_sys_monitoring/_pydevd_sys_monitoring_cython.pyx +138 -100
- debugpy-1.8.9/src/debugpy/_vendored/pydevd/pydev_ipython/__init__.py +0 -0
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/pydev_ipython/inputhookqt4.py +1 -2
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/pydev_ipython/inputhookqt5.py +1 -1
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/pydev_ipython/inputhookqt6.py +1 -1
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/pydev_ipython/qt_loaders.py +27 -4
- debugpy-1.8.9/src/debugpy/_vendored/pydevd/pydev_ipython/version.py +50 -0
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/pydevd.py +35 -38
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/add_code_to_python_process.py +1 -1
- debugpy-1.8.9/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/attach_amd64.dll +0 -0
- debugpy-1.8.9/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/attach_amd64.pdb +0 -0
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/attach_script.py +4 -0
- debugpy-1.8.9/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/attach_x86.dll +0 -0
- debugpy-1.8.9/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/attach_x86.pdb +0 -0
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/common/py_settrace.hpp +11 -11
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/inject_dll_amd64.exe +0 -0
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/inject_dll_amd64.pdb +0 -0
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/inject_dll_x86.exe +0 -0
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/inject_dll_x86.pdb +0 -0
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/run_code_on_dllmain_amd64.dll +0 -0
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/run_code_on_dllmain_amd64.pdb +0 -0
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/run_code_on_dllmain_x86.dll +0 -0
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/run_code_on_dllmain_x86.pdb +0 -0
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/windows/attach.cpp +2 -4
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/windows/compile_windows.bat +6 -8
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/pydevd_file_utils.py +28 -40
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/pydevd_plugins/django_debug.py +2 -1
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/pydevd_plugins/jinja2_debug.py +1 -1
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/pydevd_tracing.py +4 -1
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_version.py +3 -3
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/adapter/servers.py +2 -2
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/common/__init__.py +2 -2
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/launcher/debuggee.py +2 -1
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/server/api.py +1 -1
- {debugpy-1.8.7 → debugpy-1.8.9/src/debugpy.egg-info}/PKG-INFO +1 -1
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy.egg-info/SOURCES.txt +8 -0
- debugpy-1.8.7/src/debugpy/_vendored/pydevd/pydev_ipython/version.py +0 -36
- 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_x86.dll +0 -0
- debugpy-1.8.7/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/attach_x86.pdb +0 -0
- {debugpy-1.8.7 → debugpy-1.8.9}/DESCRIPTION.md +0 -0
- {debugpy-1.8.7 → debugpy-1.8.9}/LICENSE +0 -0
- {debugpy-1.8.7 → debugpy-1.8.9}/MANIFEST.in +0 -0
- {debugpy-1.8.7 → debugpy-1.8.9}/README.md +0 -0
- {debugpy-1.8.7 → debugpy-1.8.9}/setup.cfg +0 -0
- {debugpy-1.8.7 → debugpy-1.8.9}/setup.py +0 -0
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/ThirdPartyNotices.txt +0 -0
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/__init__.py +0 -0
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/__main__.py +0 -0
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/__init__.py +0 -0
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/_pydevd_packaging.py +0 -0
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/_util.py +0 -0
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/force_pydevd.py +0 -0
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/_pydev_bundle/__init__.py +0 -0
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/_pydev_bundle/_pydev_calltip_util.py +0 -0
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/_pydev_bundle/_pydev_completer.py +0 -0
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/_pydev_bundle/_pydev_execfile.py +0 -0
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/_pydev_bundle/_pydev_filesystem_encoding.py +0 -0
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/_pydev_bundle/_pydev_getopt.py +0 -0
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/_pydev_bundle/_pydev_imports_tipper.py +0 -0
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/_pydev_bundle/_pydev_jy_imports_tipper.py +0 -0
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/_pydev_bundle/_pydev_log.py +0 -0
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/_pydev_bundle/_pydev_saved_modules.py +0 -0
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/_pydev_bundle/_pydev_sys_patch.py +0 -0
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/_pydev_bundle/_pydev_tipper_common.py +0 -0
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/_pydev_bundle/fsnotify/__init__.py +0 -0
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/_pydev_bundle/pydev_console_utils.py +0 -0
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/_pydev_bundle/pydev_import_hook.py +0 -0
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/_pydev_bundle/pydev_imports.py +0 -0
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/_pydev_bundle/pydev_ipython_console.py +0 -0
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/_pydev_bundle/pydev_ipython_console_011.py +0 -0
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/_pydev_bundle/pydev_localhost.py +0 -0
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/_pydev_bundle/pydev_log.py +0 -0
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/_pydev_bundle/pydev_monkey_qt.py +0 -0
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/_pydev_bundle/pydev_override.py +0 -0
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/_pydev_bundle/pydev_umd.py +0 -0
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/_pydev_bundle/pydev_versioncheck.py +0 -0
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/_pydev_runfiles/__init__.py +0 -0
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/_pydev_runfiles/pydev_runfiles.py +0 -0
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/_pydev_runfiles/pydev_runfiles_coverage.py +0 -0
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/_pydev_runfiles/pydev_runfiles_nose.py +0 -0
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/_pydev_runfiles/pydev_runfiles_parallel.py +0 -0
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/_pydev_runfiles/pydev_runfiles_parallel_client.py +0 -0
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/_pydev_runfiles/pydev_runfiles_pytest2.py +0 -0
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/_pydev_runfiles/pydev_runfiles_unittest.py +0 -0
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/_pydevd_bundle/__init__.py +0 -0
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/_pydevd_bundle/_debug_adapter/__init__.py +0 -0
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/_pydevd_bundle/_debug_adapter/debugProtocol.json +0 -0
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/_pydevd_bundle/_debug_adapter/debugProtocolCustom.json +0 -0
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/_pydevd_bundle/_debug_adapter/pydevd_base_schema.py +0 -0
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/_pydevd_bundle/_debug_adapter/pydevd_schema.py +0 -0
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/_pydevd_bundle/_debug_adapter/pydevd_schema_log.py +0 -0
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevconsole_code.py +0 -0
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_additional_thread_info.py +0 -0
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_additional_thread_info_regular.py +0 -0
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_breakpoints.py +0 -0
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_bytecode_utils.py +0 -0
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_bytecode_utils_py311.py +0 -0
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_comm_constants.py +0 -0
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_command_line_handling.py +0 -0
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_concurrency_analyser/__init__.py +0 -0
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_concurrency_analyser/pydevd_concurrency_logger.py +0 -0
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_concurrency_analyser/pydevd_thread_wrappers.py +0 -0
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_console.py +0 -0
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_custom_frames.py +0 -0
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_cython.pxd +0 -0
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_cython_wrapper.py +0 -0
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_defaults.py +0 -0
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_dont_trace.py +0 -0
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_dont_trace_files.py +0 -0
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_exec2.py +0 -0
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_extension_api.py +0 -0
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_extension_utils.py +0 -0
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_filtering.py +0 -0
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_gevent_integration.py +0 -0
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_import_class.py +0 -0
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_io.py +0 -0
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_json_debug_options.py +0 -0
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_net_command.py +0 -0
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_net_command_factory_json.py +0 -0
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_net_command_factory_xml.py +0 -0
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_process_net_command.py +0 -0
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_referrers.py +0 -0
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_reload.py +0 -0
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_resolver.py +0 -0
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_runpy.py +0 -0
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_safe_repr.py +0 -0
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_signature.py +0 -0
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_source_mapping.py +0 -0
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_stackless.py +0 -0
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_suspended_frames.py +0 -0
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_thread_lifecycle.py +0 -0
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_timeout.py +0 -0
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_trace_dispatch.py +0 -0
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_traceproperty.py +0 -0
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_utils.py +0 -0
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_vars.py +0 -0
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_vm_type.py +0 -0
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_xml.py +0 -0
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/.gitignore +0 -0
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/__init__.py +0 -0
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/pydevd_frame_eval_cython_wrapper.py +0 -0
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/pydevd_frame_eval_main.py +0 -0
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/pydevd_frame_evaluator.pxd +0 -0
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/pydevd_frame_evaluator.pyx +0 -0
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/pydevd_frame_evaluator.template.pyx +0 -0
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/pydevd_frame_tracing.py +0 -0
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/release_mem.h +0 -0
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/README.txt +0 -0
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/__init__.py +0 -0
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode/__init__.py +0 -0
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode/bytecode.py +0 -0
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode/cfg.py +0 -0
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode/flags.py +0 -0
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode/instr.py +0 -0
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode/peephole_opt.py +0 -0
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode/tests/__init__.py +0 -0
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode/tests/test_bytecode.py +0 -0
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode/tests/test_cfg.py +0 -0
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode/tests/test_code.py +0 -0
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode/tests/test_concrete.py +0 -0
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode/tests/test_flags.py +0 -0
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode/tests/test_instr.py +0 -0
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode/tests/test_misc.py +0 -0
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode/tests/test_peephole_opt.py +0 -0
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode/tests/util_annotation.py +0 -0
- /debugpy-1.8.7/src/debugpy/_vendored/pydevd/pydev_ipython/__init__.py → /debugpy-1.8.9/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode-0.13.0.dev0.dist-info/REQUESTED +0 -0
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/pydevd_fix_code.py +0 -0
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/_pydevd_sys_monitoring/_pydevd_sys_monitoring_cython.pxd +0 -0
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/_pydevd_sys_monitoring/pydevd_sys_monitoring.py +0 -0
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/pydev_app_engine_debug_startup.py +0 -0
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/pydev_coverage.py +0 -0
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/pydev_ipython/README +0 -0
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/pydev_ipython/inputhook.py +0 -0
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/pydev_ipython/inputhookglut.py +0 -0
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/pydev_ipython/inputhookgtk.py +0 -0
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/pydev_ipython/inputhookgtk3.py +0 -0
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/pydev_ipython/inputhookpyglet.py +0 -0
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/pydev_ipython/inputhooktk.py +0 -0
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/pydev_ipython/inputhookwx.py +0 -0
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/pydev_ipython/matplotlibtools.py +0 -0
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/pydev_ipython/qt.py +0 -0
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/pydev_ipython/qt_for_kernel.py +0 -0
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/pydev_pysrc.py +0 -0
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/pydev_run_in_console.py +0 -0
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/pydev_sitecustomize/__not_in_default_pythonpath.txt +0 -0
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/pydev_sitecustomize/sitecustomize.py +0 -0
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/pydevconsole.py +0 -0
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/README.txt +0 -0
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/_always_live_program.py +0 -0
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/_check.py +0 -0
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/_test_attach_to_process.py +0 -0
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/_test_attach_to_process_linux.py +0 -0
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/attach_pydevd.py +0 -0
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/common/py_custom_pyeval_settrace.hpp +0 -0
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/common/py_custom_pyeval_settrace_310.hpp +0 -0
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/common/py_custom_pyeval_settrace_311.hpp +0 -0
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/common/py_custom_pyeval_settrace_common.hpp +0 -0
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/common/py_utils.hpp +0 -0
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/common/py_version.hpp +0 -0
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/common/python.h +0 -0
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/common/ref_utils.hpp +0 -0
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/linux_and_mac/.gitignore +0 -0
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/linux_and_mac/attach.cpp +0 -0
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/linux_and_mac/compile_linux.sh +0 -0
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/linux_and_mac/compile_mac.sh +0 -0
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/linux_and_mac/compile_manylinux.cmd +0 -0
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/linux_and_mac/lldb_prepare.py +0 -0
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/__init__.py +0 -0
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/breakpoint.py +0 -0
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/compat.py +0 -0
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/crash.py +0 -0
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/debug.py +0 -0
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/disasm.py +0 -0
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/event.py +0 -0
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/interactive.py +0 -0
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/module.py +0 -0
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/process.py +0 -0
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/registry.py +0 -0
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/search.py +0 -0
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/sql.py +0 -0
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/system.py +0 -0
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/textio.py +0 -0
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/thread.py +0 -0
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/util.py +0 -0
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/win32/__init__.py +0 -0
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/win32/advapi32.py +0 -0
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/win32/context_amd64.py +0 -0
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/win32/context_i386.py +0 -0
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/win32/dbghelp.py +0 -0
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/win32/defines.py +0 -0
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/win32/gdi32.py +0 -0
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/win32/kernel32.py +0 -0
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/win32/ntdll.py +0 -0
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/win32/peb_teb.py +0 -0
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/win32/psapi.py +0 -0
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/win32/shell32.py +0 -0
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/win32/shlwapi.py +0 -0
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/win32/user32.py +0 -0
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/win32/version.py +0 -0
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/win32/wtsapi32.py +0 -0
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/window.py +0 -0
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/windows/attach.h +0 -0
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/windows/inject_dll.cpp +0 -0
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/windows/py_win_helpers.hpp +0 -0
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/windows/run_code_in_memory.hpp +0 -0
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/windows/run_code_on_dllmain.cpp +0 -0
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/windows/stdafx.cpp +0 -0
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/windows/stdafx.h +0 -0
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/windows/targetver.h +0 -0
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/pydevd_plugins/__init__.py +0 -0
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/pydevd_plugins/extensions/README.md +0 -0
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/pydevd_plugins/extensions/__init__.py +0 -0
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/pydevd_plugins/extensions/types/__init__.py +0 -0
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/pydevd_plugins/extensions/types/pydevd_helpers.py +0 -0
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/pydevd_plugins/extensions/types/pydevd_plugin_numpy_types.py +0 -0
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/pydevd_plugins/extensions/types/pydevd_plugin_pandas_types.py +0 -0
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/pydevd_plugins/extensions/types/pydevd_plugins_django_form_str.py +0 -0
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/pydevd_plugins/pydevd_line_validation.py +0 -0
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/setup_pydevd_cython.py +0 -0
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/adapter/__init__.py +0 -0
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/adapter/__main__.py +0 -0
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/adapter/clients.py +0 -0
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/adapter/components.py +0 -0
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/adapter/launchers.py +0 -0
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/adapter/sessions.py +0 -0
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/common/json.py +0 -0
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/common/log.py +0 -0
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/common/messaging.py +0 -0
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/common/singleton.py +0 -0
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/common/sockets.py +0 -0
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/common/stacks.py +0 -0
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/common/timestamp.py +0 -0
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/common/util.py +0 -0
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/launcher/__init__.py +0 -0
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/launcher/__main__.py +0 -0
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/launcher/handlers.py +0 -0
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/launcher/output.py +0 -0
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/launcher/winapi.py +0 -0
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/public_api.py +0 -0
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/server/__init__.py +0 -0
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/server/attach_pid_injected.py +0 -0
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/server/cli.py +0 -0
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy.egg-info/dependency_links.txt +0 -0
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy.egg-info/entry_points.txt +0 -0
- {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy.egg-info/top_level.txt +0 -0
- {debugpy-1.8.7 → debugpy-1.8.9}/versioneer.py +0 -0
|
@@ -19,9 +19,9 @@ from typing import Dict, Optional, Tuple, Any
|
|
|
19
19
|
from os.path import basename, splitext
|
|
20
20
|
|
|
21
21
|
from _pydev_bundle import pydev_log
|
|
22
|
-
from _pydev_bundle.pydev_is_thread_alive import is_thread_alive
|
|
23
22
|
from _pydevd_bundle import pydevd_dont_trace
|
|
24
23
|
from _pydevd_bundle.pydevd_constants import (
|
|
24
|
+
IS_PY313_OR_GREATER,
|
|
25
25
|
GlobalDebuggerHolder,
|
|
26
26
|
ForkSafeLock,
|
|
27
27
|
PYDEVD_IPYTHON_CONTEXT,
|
|
@@ -29,7 +29,6 @@ from _pydevd_bundle.pydevd_constants import (
|
|
|
29
29
|
RETURN_VALUES_DICT,
|
|
30
30
|
PYTHON_SUSPEND,
|
|
31
31
|
)
|
|
32
|
-
from _pydevd_bundle.pydevd_frame_utils import short_tb, flag_as_unwinding, short_frame
|
|
33
32
|
from pydevd_file_utils import (
|
|
34
33
|
NORM_PATHS_AND_BASE_CONTAINER,
|
|
35
34
|
get_abs_path_real_path_and_base_from_file,
|
|
@@ -66,10 +65,8 @@ _thread_local_info = threading.local()
|
|
|
66
65
|
_get_ident = threading.get_ident
|
|
67
66
|
_thread_active = threading._active # noqa
|
|
68
67
|
|
|
69
|
-
STATE_SUSPEND: int = 2
|
|
70
68
|
CMD_STEP_INTO: int = 107
|
|
71
69
|
CMD_STEP_OVER: int = 108
|
|
72
|
-
CMD_STEP_OVER_MY_CODE: int = 159
|
|
73
70
|
CMD_STEP_INTO_MY_CODE: int = 144
|
|
74
71
|
CMD_STEP_INTO_COROUTINE: int = 206
|
|
75
72
|
CMD_SMART_STEP_INTO: int = 128
|
|
@@ -176,67 +173,65 @@ cdef _get_bootstrap_frame(depth):
|
|
|
176
173
|
|
|
177
174
|
return f_bootstrap, is_bootstrap_frame_internal
|
|
178
175
|
|
|
176
|
+
|
|
179
177
|
# fmt: off
|
|
180
178
|
# IFDEF CYTHON -- DONT EDIT THIS FILE (it is automatically generated)
|
|
181
|
-
cdef
|
|
179
|
+
cdef _get_unhandled_exception_frame(exc, int depth):
|
|
182
180
|
# ELSE
|
|
183
|
-
# def
|
|
181
|
+
# def _get_unhandled_exception_frame(exc, depth: int) -> Optional[FrameType]:
|
|
184
182
|
# ENDIF
|
|
185
183
|
# fmt: on
|
|
186
|
-
|
|
187
|
-
|
|
184
|
+
try:
|
|
185
|
+
# Unhandled frame has to be from the same exception.
|
|
186
|
+
if _thread_local_info.f_unhandled_exc is exc:
|
|
187
|
+
return _thread_local_info.f_unhandled_frame
|
|
188
|
+
else:
|
|
189
|
+
del _thread_local_info.f_unhandled_frame
|
|
190
|
+
del _thread_local_info.f_unhandled_exc
|
|
191
|
+
raise AttributeError('Not the same exception')
|
|
192
|
+
except:
|
|
193
|
+
f_unhandled = _getframe(depth)
|
|
188
194
|
|
|
189
|
-
|
|
190
|
-
|
|
195
|
+
while f_unhandled is not None and f_unhandled.f_back is not None:
|
|
196
|
+
f_back = f_unhandled.f_back
|
|
197
|
+
filename = f_back.f_code.co_filename
|
|
198
|
+
name = splitext(basename(filename))[0]
|
|
191
199
|
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
200
|
+
# When the back frame is the bootstrap (or if we have no back
|
|
201
|
+
# frame) then use this frame as the one to track.
|
|
202
|
+
if name == "threading":
|
|
203
|
+
if f_back.f_code.co_name in ("__bootstrap", "_bootstrap", "__bootstrap_inner", "_bootstrap_inner", "run"):
|
|
204
|
+
break
|
|
196
205
|
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
206
|
+
elif name == "pydev_monkey":
|
|
207
|
+
if f_back.f_code.co_name == "__call__":
|
|
208
|
+
break
|
|
200
209
|
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
210
|
+
elif name == "pydevd":
|
|
211
|
+
if f_back.f_code.co_name in ("_exec", "run", "main"):
|
|
212
|
+
break
|
|
204
213
|
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
214
|
+
elif name == "pydevd_runpy":
|
|
215
|
+
if f_back.f_code.co_name.startswith(("run", "_run")):
|
|
216
|
+
break
|
|
208
217
|
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
218
|
+
elif name == "<frozen runpy>":
|
|
219
|
+
if f_back.f_code.co_name.startswith(("run", "_run")):
|
|
220
|
+
break
|
|
212
221
|
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
222
|
+
elif name == "runpy":
|
|
223
|
+
if f_back.f_code.co_name.startswith(("run", "_run")):
|
|
224
|
+
break
|
|
216
225
|
|
|
217
|
-
|
|
226
|
+
f_unhandled = f_back
|
|
227
|
+
|
|
228
|
+
if f_unhandled is not None:
|
|
229
|
+
_thread_local_info.f_unhandled_frame = f_unhandled
|
|
230
|
+
_thread_local_info.f_unhandled_exc = exc
|
|
231
|
+
return _thread_local_info.f_unhandled_frame
|
|
232
|
+
|
|
233
|
+
return f_unhandled
|
|
218
234
|
|
|
219
|
-
# fmt: off
|
|
220
|
-
# IFDEF CYTHON -- DONT EDIT THIS FILE (it is automatically generated)
|
|
221
|
-
cdef _is_last_user_frame(frame: FrameType):
|
|
222
|
-
# ELSE
|
|
223
|
-
# def _is_last_user_frame(frame: FrameType) -> bool:
|
|
224
|
-
# ENDIF
|
|
225
|
-
# fmt: on
|
|
226
|
-
# If this frame is not a user frame, then it can't be the last one
|
|
227
|
-
if not _is_user_frame(frame):
|
|
228
|
-
return False
|
|
229
|
-
|
|
230
|
-
# If this frame is the last frame, then it is the last one
|
|
231
|
-
if frame.f_back is None:
|
|
232
|
-
return True
|
|
233
|
-
|
|
234
|
-
# If the next frame is not a user frame, then this frame is the last one
|
|
235
|
-
if not _is_user_frame(frame.f_back):
|
|
236
|
-
return True
|
|
237
|
-
|
|
238
|
-
# Otherwise if the next frame is a user frame, then this frame is not the last one
|
|
239
|
-
return False
|
|
240
235
|
|
|
241
236
|
# fmt: off
|
|
242
237
|
# IFDEF CYTHON -- DONT EDIT THIS FILE (it is automatically generated)
|
|
@@ -245,6 +240,7 @@ cdef class ThreadInfo:
|
|
|
245
240
|
cdef PyDBAdditionalThreadInfo additional_info
|
|
246
241
|
thread: threading.Thread
|
|
247
242
|
trace: bool
|
|
243
|
+
_use_is_stopped: bool
|
|
248
244
|
# ELSE
|
|
249
245
|
# class ThreadInfo:
|
|
250
246
|
# additional_info: PyDBAdditionalThreadInfo
|
|
@@ -265,6 +261,19 @@ cdef class ThreadInfo:
|
|
|
265
261
|
self.thread_ident = thread_ident
|
|
266
262
|
self.additional_info = additional_info
|
|
267
263
|
self.trace = trace
|
|
264
|
+
self._use_is_stopped = hasattr(thread, '_is_stopped')
|
|
265
|
+
|
|
266
|
+
# fmt: off
|
|
267
|
+
# IFDEF CYTHON -- DONT EDIT THIS FILE (it is automatically generated)
|
|
268
|
+
cdef bint is_thread_alive(self):
|
|
269
|
+
# ELSE
|
|
270
|
+
# def is_thread_alive(self):
|
|
271
|
+
# ENDIF
|
|
272
|
+
# fmt: on
|
|
273
|
+
if self._use_is_stopped:
|
|
274
|
+
return not self.thread._is_stopped
|
|
275
|
+
else:
|
|
276
|
+
return not self.thread._handle.is_done()
|
|
268
277
|
|
|
269
278
|
|
|
270
279
|
class _DeleteDummyThreadOnDel:
|
|
@@ -328,7 +337,7 @@ cdef _create_thread_info(depth):
|
|
|
328
337
|
if t is None:
|
|
329
338
|
t = _thread_active.get(thread_ident)
|
|
330
339
|
|
|
331
|
-
if isinstance(t, threading._DummyThread):
|
|
340
|
+
if isinstance(t, threading._DummyThread) and not IS_PY313_OR_GREATER:
|
|
332
341
|
_thread_local_info._ref = _DeleteDummyThreadOnDel(t)
|
|
333
342
|
|
|
334
343
|
if t is None:
|
|
@@ -370,6 +379,7 @@ cdef class FuncCodeInfo:
|
|
|
370
379
|
cdef str co_name
|
|
371
380
|
# ELSE
|
|
372
381
|
# class FuncCodeInfo:
|
|
382
|
+
#
|
|
373
383
|
# ENDIF
|
|
374
384
|
# fmt: on
|
|
375
385
|
def __init__(self):
|
|
@@ -415,8 +425,9 @@ cdef class FuncCodeInfo:
|
|
|
415
425
|
|
|
416
426
|
def get_line_of_offset(self, offset):
|
|
417
427
|
for start, end, line in self.code_obj.co_lines():
|
|
418
|
-
if
|
|
419
|
-
|
|
428
|
+
if start is not None and end is not None and line is not None:
|
|
429
|
+
if offset >= start and offset <= end:
|
|
430
|
+
return line
|
|
420
431
|
return -1
|
|
421
432
|
|
|
422
433
|
|
|
@@ -447,15 +458,41 @@ cdef _get_thread_info(bint create, int depth):
|
|
|
447
458
|
return _thread_local_info.thread_info
|
|
448
459
|
|
|
449
460
|
|
|
450
|
-
|
|
461
|
+
# fmt: off
|
|
462
|
+
# IFDEF CYTHON -- DONT EDIT THIS FILE (it is automatically generated)
|
|
463
|
+
cdef class _CodeLineInfo:
|
|
464
|
+
cdef dict line_to_offset
|
|
465
|
+
cdef int first_line
|
|
466
|
+
cdef int last_line
|
|
467
|
+
# ELSE
|
|
468
|
+
# class _CodeLineInfo:
|
|
469
|
+
# line_to_offset: Dict[int, Any]
|
|
470
|
+
# first_line: int
|
|
471
|
+
# last_line: int
|
|
472
|
+
# ENDIF
|
|
473
|
+
# fmt: on
|
|
451
474
|
|
|
475
|
+
# fmt: off
|
|
476
|
+
# IFDEF CYTHON -- DONT EDIT THIS FILE (it is automatically generated)
|
|
477
|
+
def __init__(self, dict line_to_offset, int first_line, int last_line):
|
|
478
|
+
self.line_to_offset = line_to_offset
|
|
479
|
+
self.first_line = first_line
|
|
480
|
+
self.last_line = last_line
|
|
481
|
+
# ELSE
|
|
482
|
+
# def __init__(self, line_to_offset, first_line, last_line):
|
|
483
|
+
# self.line_to_offset = line_to_offset
|
|
484
|
+
# self.first_line = first_line
|
|
485
|
+
# self.last_line = last_line
|
|
486
|
+
#
|
|
487
|
+
# ENDIF
|
|
488
|
+
# fmt: on
|
|
452
489
|
|
|
453
490
|
# Note: this method has a version in cython too
|
|
454
491
|
# fmt: off
|
|
455
492
|
# IFDEF CYTHON -- DONT EDIT THIS FILE (it is automatically generated)
|
|
456
|
-
cdef _get_code_line_info(code_obj, _cache={}):
|
|
493
|
+
cdef _CodeLineInfo _get_code_line_info(code_obj, _cache={}):
|
|
457
494
|
# ELSE
|
|
458
|
-
# def _get_code_line_info(code_obj, _cache={}):
|
|
495
|
+
# def _get_code_line_info(code_obj, _cache={}) -> _CodeLineInfo:
|
|
459
496
|
# ENDIF
|
|
460
497
|
# fmt: on
|
|
461
498
|
try:
|
|
@@ -466,7 +503,7 @@ cdef _get_code_line_info(code_obj, _cache={}):
|
|
|
466
503
|
last_line = None
|
|
467
504
|
|
|
468
505
|
for offset, line in dis.findlinestarts(code_obj):
|
|
469
|
-
if
|
|
506
|
+
if line is not None:
|
|
470
507
|
line_to_offset[line] = offset
|
|
471
508
|
|
|
472
509
|
if len(line_to_offset):
|
|
@@ -838,32 +875,30 @@ cdef _unwind_event(code, instruction, exc):
|
|
|
838
875
|
if thread_info is None:
|
|
839
876
|
return
|
|
840
877
|
|
|
841
|
-
frame = _getframe(1)
|
|
842
|
-
arg = (type(exc), exc, exc.__traceback__)
|
|
843
|
-
|
|
844
878
|
py_db: object = GlobalDebuggerHolder.global_dbg
|
|
845
879
|
if py_db is None or py_db.pydb_disposed:
|
|
846
880
|
return
|
|
847
881
|
|
|
848
|
-
if not thread_info.trace or not is_thread_alive(
|
|
882
|
+
if not thread_info.trace or not thread_info.is_thread_alive():
|
|
849
883
|
# For thread-related stuff we can't disable the code tracing because other
|
|
850
884
|
# threads may still want it...
|
|
851
885
|
return
|
|
852
|
-
|
|
886
|
+
|
|
853
887
|
func_code_info: FuncCodeInfo = _get_func_code_info(code, 1)
|
|
854
888
|
if func_code_info.always_skip_code:
|
|
855
889
|
return
|
|
856
|
-
|
|
890
|
+
|
|
857
891
|
# print('_unwind_event', code, exc)
|
|
892
|
+
frame = _getframe(1)
|
|
893
|
+
arg = (type(exc), exc, exc.__traceback__)
|
|
858
894
|
|
|
859
895
|
has_caught_exception_breakpoint_in_pydb = (
|
|
860
896
|
py_db.break_on_caught_exceptions or py_db.break_on_user_uncaught_exceptions or py_db.has_plugin_exception_breaks
|
|
861
897
|
)
|
|
862
898
|
|
|
863
|
-
|
|
864
899
|
if has_caught_exception_breakpoint_in_pydb:
|
|
865
900
|
_should_stop, frame, user_uncaught_exc_info = should_stop_on_exception(
|
|
866
|
-
py_db, thread_info.additional_info, frame, thread_info.thread, arg, None
|
|
901
|
+
py_db, thread_info.additional_info, frame, thread_info.thread, arg, None, is_unwind=True
|
|
867
902
|
)
|
|
868
903
|
if user_uncaught_exc_info:
|
|
869
904
|
# TODO: Check: this may no longer be needed as in the unwind we know it's
|
|
@@ -877,13 +912,14 @@ cdef _unwind_event(code, instruction, exc):
|
|
|
877
912
|
)
|
|
878
913
|
|
|
879
914
|
if is_unhandled:
|
|
880
|
-
# print('stop in user uncaught')
|
|
881
915
|
handle_exception(py_db, thread_info.thread, frame, user_uncaught_exc_info[0], EXCEPTION_TYPE_USER_UNHANDLED)
|
|
882
916
|
return
|
|
883
917
|
|
|
884
918
|
break_on_uncaught_exceptions = py_db.break_on_uncaught_exceptions
|
|
885
|
-
if break_on_uncaught_exceptions
|
|
886
|
-
|
|
919
|
+
if break_on_uncaught_exceptions:
|
|
920
|
+
if frame is _get_unhandled_exception_frame(exc, 1):
|
|
921
|
+
stop_on_unhandled_exception(py_db, thread_info.thread, thread_info.additional_info, arg)
|
|
922
|
+
return
|
|
887
923
|
|
|
888
924
|
|
|
889
925
|
# fmt: off
|
|
@@ -911,15 +947,12 @@ cdef _raise_event(code, instruction, exc):
|
|
|
911
947
|
thread_info = _get_thread_info(True, 1)
|
|
912
948
|
if thread_info is None:
|
|
913
949
|
return
|
|
914
|
-
|
|
915
|
-
frame = _getframe(1)
|
|
916
|
-
arg = (type(exc), exc, exc.__traceback__)
|
|
917
|
-
|
|
950
|
+
|
|
918
951
|
py_db: object = GlobalDebuggerHolder.global_dbg
|
|
919
952
|
if py_db is None or py_db.pydb_disposed:
|
|
920
953
|
return
|
|
921
954
|
|
|
922
|
-
if not thread_info.trace or not is_thread_alive(
|
|
955
|
+
if not thread_info.trace or not thread_info.is_thread_alive():
|
|
923
956
|
# For thread-related stuff we can't disable the code tracing because other
|
|
924
957
|
# threads may still want it...
|
|
925
958
|
return
|
|
@@ -928,7 +961,8 @@ cdef _raise_event(code, instruction, exc):
|
|
|
928
961
|
if func_code_info.always_skip_code:
|
|
929
962
|
return
|
|
930
963
|
|
|
931
|
-
|
|
964
|
+
frame = _getframe(1)
|
|
965
|
+
arg = (type(exc), exc, exc.__traceback__)
|
|
932
966
|
|
|
933
967
|
# Compute the previous exception info (if any). We use it to check if the exception
|
|
934
968
|
# should be stopped
|
|
@@ -944,10 +978,6 @@ cdef _raise_event(code, instruction, exc):
|
|
|
944
978
|
if should_stop:
|
|
945
979
|
handle_exception(py_db, thread_info.thread, frame, arg, EXCEPTION_TYPE_HANDLED)
|
|
946
980
|
|
|
947
|
-
# Once we leave the raise event, we are no longer in the state of 'just_raised', so
|
|
948
|
-
# indicate that this traceback is for an exception in the unwinding state
|
|
949
|
-
flag_as_unwinding(exc.__traceback__)
|
|
950
|
-
|
|
951
981
|
|
|
952
982
|
# fmt: off
|
|
953
983
|
# IFDEF CYTHON -- DONT EDIT THIS FILE (it is automatically generated)
|
|
@@ -1037,7 +1067,7 @@ cdef _return_event(code, instruction, retval):
|
|
|
1037
1067
|
if py_db is None or py_db.pydb_disposed:
|
|
1038
1068
|
return monitor.DISABLE
|
|
1039
1069
|
|
|
1040
|
-
if not thread_info.trace or not is_thread_alive(
|
|
1070
|
+
if not thread_info.trace or not thread_info.is_thread_alive():
|
|
1041
1071
|
# For thread-related stuff we can't disable the code tracing because other
|
|
1042
1072
|
# threads may still want it...
|
|
1043
1073
|
return
|
|
@@ -1348,7 +1378,11 @@ cdef _jump_event(code, int from_offset, int to_offset):
|
|
|
1348
1378
|
if py_db is None or py_db.pydb_disposed:
|
|
1349
1379
|
return monitor.DISABLE
|
|
1350
1380
|
|
|
1351
|
-
|
|
1381
|
+
# If we get another jump event, remove the extra check for the line event
|
|
1382
|
+
if hasattr(_thread_local_info, "f_disable_next_line_if_match"):
|
|
1383
|
+
del _thread_local_info.f_disable_next_line_if_match
|
|
1384
|
+
|
|
1385
|
+
if not thread_info.trace or not thread_info.is_thread_alive():
|
|
1352
1386
|
# For thread-related stuff we can't disable the code tracing because other
|
|
1353
1387
|
# threads may still want it...
|
|
1354
1388
|
return
|
|
@@ -1364,9 +1398,8 @@ cdef _jump_event(code, int from_offset, int to_offset):
|
|
|
1364
1398
|
if to_offset > from_offset:
|
|
1365
1399
|
return monitor.DISABLE
|
|
1366
1400
|
|
|
1367
|
-
from_line = func_code_info.get_line_of_offset(from_offset)
|
|
1368
|
-
to_line = func_code_info.get_line_of_offset(to_offset)
|
|
1369
|
-
# print('jump event', code.co_name, 'from line', from_line, 'to line', to_line)
|
|
1401
|
+
from_line = func_code_info.get_line_of_offset(from_offset or 0)
|
|
1402
|
+
to_line = func_code_info.get_line_of_offset(to_offset or 0)
|
|
1370
1403
|
|
|
1371
1404
|
if from_line != to_line:
|
|
1372
1405
|
# I.e.: use case: "yield from [j for j in a if j % 2 == 0]"
|
|
@@ -1376,7 +1409,8 @@ cdef _jump_event(code, int from_offset, int to_offset):
|
|
|
1376
1409
|
frame = _getframe(1)
|
|
1377
1410
|
|
|
1378
1411
|
# Disable the next line event as we're jumping to a line. The line event will be redundant.
|
|
1379
|
-
_thread_local_info.f_disable_next_line_if_match = frame.f_lineno
|
|
1412
|
+
_thread_local_info.f_disable_next_line_if_match = (func_code_info.co_filename, frame.f_lineno)
|
|
1413
|
+
# pydev_log.debug('_jump_event', code.co_name, 'from line', from_line, 'to line', frame.f_lineno)
|
|
1380
1414
|
|
|
1381
1415
|
return _internal_line_event(func_code_info, frame, frame.f_lineno)
|
|
1382
1416
|
|
|
@@ -1405,24 +1439,26 @@ cdef _line_event(code, int line):
|
|
|
1405
1439
|
if py_db is None or py_db.pydb_disposed:
|
|
1406
1440
|
return monitor.DISABLE
|
|
1407
1441
|
|
|
1408
|
-
|
|
1442
|
+
# If we get another line event, remove the extra check for the line event
|
|
1443
|
+
if hasattr(_thread_local_info, "f_disable_next_line_if_match"):
|
|
1444
|
+
(co_filename, line_to_skip) = _thread_local_info.f_disable_next_line_if_match
|
|
1445
|
+
del _thread_local_info.f_disable_next_line_if_match
|
|
1446
|
+
if line_to_skip is line and co_filename == code.co_filename:
|
|
1447
|
+
# The last jump already jumped to this line and we haven't had any
|
|
1448
|
+
# line events or jumps since then. We don't want to consider this line twice
|
|
1449
|
+
# pydev_log.debug('_line_event skipped', line)
|
|
1450
|
+
return
|
|
1451
|
+
|
|
1452
|
+
if not thread_info.trace or not thread_info.is_thread_alive():
|
|
1409
1453
|
# For thread-related stuff we can't disable the code tracing because other
|
|
1410
1454
|
# threads may still want it...
|
|
1411
1455
|
return
|
|
1412
1456
|
|
|
1413
|
-
if hasattr(_thread_local_info, "f_disable_next_line_if_match"):
|
|
1414
|
-
if _thread_local_info.f_disable_next_line_if_match is line:
|
|
1415
|
-
# If we're in a jump, we should skip this line event. The jump would have
|
|
1416
|
-
# been considered a line event for this same line and we don't want to
|
|
1417
|
-
# stop twice.
|
|
1418
|
-
del _thread_local_info.f_disable_next_line_if_match
|
|
1419
|
-
return
|
|
1420
|
-
|
|
1421
1457
|
func_code_info: FuncCodeInfo = _get_func_code_info(code, 1)
|
|
1422
1458
|
if func_code_info.always_skip_code or func_code_info.always_filtered_out:
|
|
1423
1459
|
return monitor.DISABLE
|
|
1424
1460
|
|
|
1425
|
-
#
|
|
1461
|
+
# pydev_log.debug('_line_event', code.co_name, line)
|
|
1426
1462
|
|
|
1427
1463
|
# We know the frame depth.
|
|
1428
1464
|
frame = _getframe(1)
|
|
@@ -1652,12 +1688,11 @@ cdef _start_method_event(code, instruction_offset):
|
|
|
1652
1688
|
if py_db is None or py_db.pydb_disposed:
|
|
1653
1689
|
return monitor.DISABLE
|
|
1654
1690
|
|
|
1655
|
-
if not thread_info.trace or not is_thread_alive(
|
|
1691
|
+
if not thread_info.trace or not thread_info.is_thread_alive():
|
|
1656
1692
|
# For thread-related stuff we can't disable the code tracing because other
|
|
1657
1693
|
# threads may still want it...
|
|
1658
1694
|
return
|
|
1659
1695
|
|
|
1660
|
-
|
|
1661
1696
|
frame = _getframe(1)
|
|
1662
1697
|
func_code_info = _get_func_code_info(code, frame)
|
|
1663
1698
|
if func_code_info.always_skip_code:
|
|
@@ -1705,6 +1740,7 @@ cdef _start_method_event(code, instruction_offset):
|
|
|
1705
1740
|
|
|
1706
1741
|
return monitor.DISABLE
|
|
1707
1742
|
|
|
1743
|
+
|
|
1708
1744
|
# fmt: off
|
|
1709
1745
|
# IFDEF CYTHON -- DONT EDIT THIS FILE (it is automatically generated)
|
|
1710
1746
|
cpdef _ensure_monitoring():
|
|
@@ -1777,7 +1813,7 @@ cpdef stop_monitoring(all_threads=False):
|
|
|
1777
1813
|
thread_info.trace = False
|
|
1778
1814
|
|
|
1779
1815
|
|
|
1780
|
-
def update_monitor_events(suspend_requested: Optional[bool]
|
|
1816
|
+
def update_monitor_events(suspend_requested: Optional[bool]=None) -> None:
|
|
1781
1817
|
"""
|
|
1782
1818
|
This should be called when breakpoints change.
|
|
1783
1819
|
|
|
@@ -1849,7 +1885,10 @@ def update_monitor_events(suspend_requested: Optional[bool] = None) -> None:
|
|
|
1849
1885
|
monitor.register_callback(DEBUGGER_ID, monitor.events.PY_START, _start_method_event)
|
|
1850
1886
|
# monitor.register_callback(DEBUGGER_ID, monitor.events.PY_RESUME, _resume_method_event)
|
|
1851
1887
|
monitor.register_callback(DEBUGGER_ID, monitor.events.LINE, _line_event)
|
|
1852
|
-
|
|
1888
|
+
if not IS_PY313_OR_GREATER:
|
|
1889
|
+
# In Python 3.13+ jump_events aren't necessary as we have a line_event for every
|
|
1890
|
+
# jump location.
|
|
1891
|
+
monitor.register_callback(DEBUGGER_ID, monitor.events.JUMP, _jump_event)
|
|
1853
1892
|
monitor.register_callback(DEBUGGER_ID, monitor.events.PY_RETURN, _return_event)
|
|
1854
1893
|
|
|
1855
1894
|
else:
|
|
@@ -1905,7 +1944,6 @@ def _do_wait_suspend(py_db, ThreadInfo thread_info, frame, event, arg):
|
|
|
1905
1944
|
thread_info.additional_info.trace_suspend_type = "sys_monitor"
|
|
1906
1945
|
py_db.do_wait_suspend(thread_info.thread, frame, event, arg)
|
|
1907
1946
|
|
|
1908
|
-
|
|
1909
1947
|
# This can be used to diagnose exceptions inside of the debugger itself.
|
|
1910
1948
|
#
|
|
1911
1949
|
# import types
|
|
File without changes
|
|
@@ -19,8 +19,7 @@ Author: Christian Boos
|
|
|
19
19
|
import os
|
|
20
20
|
import signal
|
|
21
21
|
|
|
22
|
-
import threading
|
|
23
|
-
|
|
22
|
+
from _pydev_bundle._pydev_saved_modules import threading
|
|
24
23
|
|
|
25
24
|
from pydev_ipython.qt_for_kernel import QtCore, QtGui
|
|
26
25
|
from pydev_ipython.inputhook import allow_CTRL_C, ignore_CTRL_C, stdin_ready
|
|
@@ -19,7 +19,7 @@ Author: Christian Boos
|
|
|
19
19
|
import os
|
|
20
20
|
import signal
|
|
21
21
|
|
|
22
|
-
import threading
|
|
22
|
+
from _pydev_bundle._pydev_saved_modules import threading
|
|
23
23
|
|
|
24
24
|
from pydev_ipython.qt_for_kernel import QtCore, QtGui
|
|
25
25
|
from pydev_ipython.inputhook import allow_CTRL_C, ignore_CTRL_C, stdin_ready
|
|
@@ -19,7 +19,7 @@ Author: Christian Boos, Marijn van Vliet
|
|
|
19
19
|
import os
|
|
20
20
|
import signal
|
|
21
21
|
|
|
22
|
-
import threading
|
|
22
|
+
from _pydev_bundle._pydev_saved_modules import threading
|
|
23
23
|
|
|
24
24
|
from pydev_ipython.qt_for_kernel import QtCore, QtGui
|
|
25
25
|
from pydev_ipython.inputhook import allow_CTRL_C, ignore_CTRL_C, stdin_ready
|
|
@@ -127,21 +127,44 @@ def has_binding(api):
|
|
|
127
127
|
}
|
|
128
128
|
module_name = module_name[api]
|
|
129
129
|
|
|
130
|
-
import
|
|
130
|
+
import importlib
|
|
131
131
|
|
|
132
132
|
try:
|
|
133
133
|
# importing top level PyQt4/PySide module is ok...
|
|
134
134
|
mod = __import__(module_name)
|
|
135
135
|
# ...importing submodules is not
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
136
|
+
|
|
137
|
+
for check in ("QtCore", "QtGui", "QtSvg"):
|
|
138
|
+
if importlib.util.find_spec("%s.%s" % (module_name, check)) is None:
|
|
139
|
+
return False
|
|
139
140
|
|
|
140
141
|
# we can also safely check PySide version
|
|
141
142
|
if api == QT_API_PYSIDE:
|
|
142
143
|
return check_version(mod.__version__, "1.0.3")
|
|
143
144
|
else:
|
|
144
145
|
return True
|
|
146
|
+
|
|
147
|
+
except ModuleNotFoundError:
|
|
148
|
+
from importlib import machinery
|
|
149
|
+
|
|
150
|
+
# importing top level PyQt4/PySide module is ok...
|
|
151
|
+
mod = __import__(module_name)
|
|
152
|
+
|
|
153
|
+
# ...importing submodules is not
|
|
154
|
+
loader_details = (machinery.ExtensionFileLoader, machinery.EXTENSION_SUFFIXES)
|
|
155
|
+
submod_finder = machinery.FileFinder(mod.__path__[0], loader_details)
|
|
156
|
+
submod_check = (
|
|
157
|
+
submod_finder.find_spec("QtCore") is not None
|
|
158
|
+
and submod_finder.find_spec("QtGui") is not None
|
|
159
|
+
and submod_finder.find_spec("QtSvg") is not None
|
|
160
|
+
)
|
|
161
|
+
|
|
162
|
+
# we can also safely check PySide version
|
|
163
|
+
if api == QT_API_PYSIDE:
|
|
164
|
+
return check_version(mod.__version__, '1.0.3') and submod_check
|
|
165
|
+
else:
|
|
166
|
+
return submod_check
|
|
167
|
+
|
|
145
168
|
except ImportError:
|
|
146
169
|
return False
|
|
147
170
|
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
"""
|
|
2
|
+
Utility for version comparison
|
|
3
|
+
"""
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
class _Version:
|
|
7
|
+
def __init__(self, s):
|
|
8
|
+
parts = s.split(".")
|
|
9
|
+
version_parts = []
|
|
10
|
+
for p in parts:
|
|
11
|
+
try:
|
|
12
|
+
version_parts.append(int(p))
|
|
13
|
+
except ValueError:
|
|
14
|
+
version_parts.append(p)
|
|
15
|
+
|
|
16
|
+
self._version_parts = tuple(version_parts)
|
|
17
|
+
|
|
18
|
+
def __ge__(self, v):
|
|
19
|
+
this_parts = self._version_parts
|
|
20
|
+
other_parts = v._version_parts
|
|
21
|
+
|
|
22
|
+
while len(this_parts) < len(other_parts):
|
|
23
|
+
this_parts = this_parts + (0,)
|
|
24
|
+
|
|
25
|
+
return this_parts >= other_parts
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
def check_version(found_version, expected_min_or_eq_to_version):
|
|
29
|
+
"""check version string found_version >= expected_min_or_eq_to_version
|
|
30
|
+
|
|
31
|
+
If dev/prerelease tags result in TypeError for string-number comparison,
|
|
32
|
+
it is assumed that the dependency is satisfied.
|
|
33
|
+
Users on dev branches are responsible for keeping their own packages up to date.
|
|
34
|
+
"""
|
|
35
|
+
try:
|
|
36
|
+
return _Version(found_version) >= _Version(expected_min_or_eq_to_version)
|
|
37
|
+
except TypeError:
|
|
38
|
+
return True
|
|
39
|
+
|
|
40
|
+
|
|
41
|
+
if __name__ == "__main__":
|
|
42
|
+
assert check_version("1.2.3", "1.2.3")
|
|
43
|
+
assert check_version("1.2.4", "1.2.3")
|
|
44
|
+
assert check_version("1.2", "1.2.bar")
|
|
45
|
+
assert check_version("1.3", "1.2.bar")
|
|
46
|
+
assert check_version("1.3", "1.2b")
|
|
47
|
+
assert not check_version("1.2", "1.3")
|
|
48
|
+
assert not check_version("1.2.0", "1.2.1")
|
|
49
|
+
assert not check_version("1.2", "1.2.1")
|
|
50
|
+
print("Ok, checks passed")
|