debugpy 1.8.6__zip → 1.8.8__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.6/src/debugpy.egg-info → debugpy-1.8.8}/PKG-INFO +1 -1
- {debugpy-1.8.6 → debugpy-1.8.8}/pyproject.toml +5 -2
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/_vendored/pydevd/_pydev_bundle/pydev_is_thread_alive.py +8 -1
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/_vendored/pydevd/_pydev_bundle/pydev_monkey.py +58 -24
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_additional_thread_info_regular.py +2 -1
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_api.py +2 -1
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_collect_bytecode_info.py +2 -0
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_comm.py +12 -11
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_constants.py +12 -2
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_cython.c +3999 -3952
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_cython.pyx +6 -5
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_daemon_thread.py +1 -0
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_frame.py +4 -4
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_frame_utils.py +28 -19
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_plugin_utils.py +2 -2
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_process_net_command_json.py +2 -1
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_save_locals.py +17 -2
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/pydevd_frame_evaluator.c +651 -631
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/pydevd_modify_bytecode.py +2 -1
- debugpy-1.8.8/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode-0.13.0.dev0.dist-info/COPYING +21 -0
- debugpy-1.8.8/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode-0.13.0.dev0.dist-info/INSTALLER +1 -0
- debugpy-1.8.8/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode-0.13.0.dev0.dist-info/METADATA +77 -0
- debugpy-1.8.8/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode-0.13.0.dev0.dist-info/RECORD +42 -0
- debugpy-1.8.8/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode-0.13.0.dev0.dist-info/WHEEL +5 -0
- debugpy-1.8.8/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode-0.13.0.dev0.dist-info/direct_url.json +1 -0
- debugpy-1.8.8/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode-0.13.0.dev0.dist-info/top_level.txt +1 -0
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/_vendored/pydevd/_pydevd_sys_monitoring/_pydevd_sys_monitoring.py +137 -95
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/_vendored/pydevd/_pydevd_sys_monitoring/_pydevd_sys_monitoring_cython.c +7619 -5714
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/_vendored/pydevd/_pydevd_sys_monitoring/_pydevd_sys_monitoring_cython.pyx +137 -96
- debugpy-1.8.8/src/debugpy/_vendored/pydevd/pydev_ipython/__init__.py +0 -0
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/_vendored/pydevd/pydev_ipython/inputhookqt4.py +1 -2
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/_vendored/pydevd/pydev_ipython/inputhookqt5.py +1 -1
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/_vendored/pydevd/pydev_ipython/inputhookqt6.py +1 -1
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/_vendored/pydevd/pydev_ipython/qt_loaders.py +27 -4
- debugpy-1.8.8/src/debugpy/_vendored/pydevd/pydev_ipython/version.py +50 -0
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/_vendored/pydevd/pydevd.py +19 -28
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/add_code_to_python_process.py +1 -1
- debugpy-1.8.8/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/attach_amd64.dll +0 -0
- debugpy-1.8.8/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/attach_amd64.pdb +0 -0
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/attach_script.py +4 -0
- debugpy-1.8.8/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/attach_x86.dll +0 -0
- debugpy-1.8.8/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/attach_x86.pdb +0 -0
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/common/py_settrace.hpp +11 -11
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/inject_dll_amd64.exe +0 -0
- debugpy-1.8.8/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/inject_dll_amd64.pdb +0 -0
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/inject_dll_x86.exe +0 -0
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/inject_dll_x86.pdb +0 -0
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/run_code_on_dllmain_amd64.dll +0 -0
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/run_code_on_dllmain_amd64.pdb +0 -0
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/run_code_on_dllmain_x86.dll +0 -0
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/run_code_on_dllmain_x86.pdb +0 -0
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/windows/attach.cpp +2 -4
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/windows/compile_windows.bat +6 -8
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/_vendored/pydevd/pydevd_file_utils.py +28 -40
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/_vendored/pydevd/pydevd_plugins/django_debug.py +2 -1
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/_vendored/pydevd/pydevd_plugins/jinja2_debug.py +1 -1
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/_vendored/pydevd/pydevd_tracing.py +4 -1
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/_version.py +3 -3
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/adapter/servers.py +2 -2
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/common/__init__.py +2 -2
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/launcher/debuggee.py +2 -1
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/server/api.py +1 -1
- {debugpy-1.8.6 → debugpy-1.8.8/src/debugpy.egg-info}/PKG-INFO +1 -1
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy.egg-info/SOURCES.txt +8 -0
- debugpy-1.8.6/src/debugpy/_vendored/pydevd/pydev_ipython/version.py +0 -36
- debugpy-1.8.6/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/attach_amd64.dll +0 -0
- debugpy-1.8.6/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/attach_amd64.pdb +0 -0
- debugpy-1.8.6/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/attach_x86.dll +0 -0
- debugpy-1.8.6/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/attach_x86.pdb +0 -0
- debugpy-1.8.6/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/inject_dll_amd64.pdb +0 -0
- {debugpy-1.8.6 → debugpy-1.8.8}/DESCRIPTION.md +0 -0
- {debugpy-1.8.6 → debugpy-1.8.8}/LICENSE +0 -0
- {debugpy-1.8.6 → debugpy-1.8.8}/MANIFEST.in +0 -0
- {debugpy-1.8.6 → debugpy-1.8.8}/README.md +0 -0
- {debugpy-1.8.6 → debugpy-1.8.8}/setup.cfg +0 -0
- {debugpy-1.8.6 → debugpy-1.8.8}/setup.py +0 -0
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/ThirdPartyNotices.txt +0 -0
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/__init__.py +0 -0
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/__main__.py +0 -0
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/_vendored/__init__.py +0 -0
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/_vendored/_pydevd_packaging.py +0 -0
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/_vendored/_util.py +0 -0
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/_vendored/force_pydevd.py +0 -0
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/_vendored/pydevd/_pydev_bundle/__init__.py +0 -0
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/_vendored/pydevd/_pydev_bundle/_pydev_calltip_util.py +0 -0
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/_vendored/pydevd/_pydev_bundle/_pydev_completer.py +0 -0
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/_vendored/pydevd/_pydev_bundle/_pydev_execfile.py +0 -0
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/_vendored/pydevd/_pydev_bundle/_pydev_filesystem_encoding.py +0 -0
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/_vendored/pydevd/_pydev_bundle/_pydev_getopt.py +0 -0
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/_vendored/pydevd/_pydev_bundle/_pydev_imports_tipper.py +0 -0
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/_vendored/pydevd/_pydev_bundle/_pydev_jy_imports_tipper.py +0 -0
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/_vendored/pydevd/_pydev_bundle/_pydev_log.py +0 -0
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/_vendored/pydevd/_pydev_bundle/_pydev_saved_modules.py +0 -0
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/_vendored/pydevd/_pydev_bundle/_pydev_sys_patch.py +0 -0
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/_vendored/pydevd/_pydev_bundle/_pydev_tipper_common.py +0 -0
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/_vendored/pydevd/_pydev_bundle/fsnotify/__init__.py +0 -0
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/_vendored/pydevd/_pydev_bundle/pydev_console_utils.py +0 -0
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/_vendored/pydevd/_pydev_bundle/pydev_import_hook.py +0 -0
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/_vendored/pydevd/_pydev_bundle/pydev_imports.py +0 -0
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/_vendored/pydevd/_pydev_bundle/pydev_ipython_console.py +0 -0
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/_vendored/pydevd/_pydev_bundle/pydev_ipython_console_011.py +0 -0
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/_vendored/pydevd/_pydev_bundle/pydev_localhost.py +0 -0
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/_vendored/pydevd/_pydev_bundle/pydev_log.py +0 -0
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/_vendored/pydevd/_pydev_bundle/pydev_monkey_qt.py +0 -0
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/_vendored/pydevd/_pydev_bundle/pydev_override.py +0 -0
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/_vendored/pydevd/_pydev_bundle/pydev_umd.py +0 -0
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/_vendored/pydevd/_pydev_bundle/pydev_versioncheck.py +0 -0
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/_vendored/pydevd/_pydev_runfiles/__init__.py +0 -0
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/_vendored/pydevd/_pydev_runfiles/pydev_runfiles.py +0 -0
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/_vendored/pydevd/_pydev_runfiles/pydev_runfiles_coverage.py +0 -0
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/_vendored/pydevd/_pydev_runfiles/pydev_runfiles_nose.py +0 -0
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/_vendored/pydevd/_pydev_runfiles/pydev_runfiles_parallel.py +0 -0
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/_vendored/pydevd/_pydev_runfiles/pydev_runfiles_parallel_client.py +0 -0
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/_vendored/pydevd/_pydev_runfiles/pydev_runfiles_pytest2.py +0 -0
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/_vendored/pydevd/_pydev_runfiles/pydev_runfiles_unittest.py +0 -0
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/_vendored/pydevd/_pydev_runfiles/pydev_runfiles_xml_rpc.py +0 -0
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/_vendored/pydevd/_pydevd_bundle/__init__.py +0 -0
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/_vendored/pydevd/_pydevd_bundle/_debug_adapter/__init__.py +0 -0
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/_vendored/pydevd/_pydevd_bundle/_debug_adapter/__main__pydevd_gen_debug_adapter_protocol.py +0 -0
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/_vendored/pydevd/_pydevd_bundle/_debug_adapter/debugProtocol.json +0 -0
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/_vendored/pydevd/_pydevd_bundle/_debug_adapter/debugProtocolCustom.json +0 -0
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/_vendored/pydevd/_pydevd_bundle/_debug_adapter/pydevd_base_schema.py +0 -0
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/_vendored/pydevd/_pydevd_bundle/_debug_adapter/pydevd_schema.py +0 -0
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/_vendored/pydevd/_pydevd_bundle/_debug_adapter/pydevd_schema_log.py +0 -0
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevconsole_code.py +0 -0
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_additional_thread_info.py +0 -0
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_breakpoints.py +0 -0
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_bytecode_utils.py +0 -0
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_bytecode_utils_py311.py +0 -0
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_code_to_source.py +0 -0
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_comm_constants.py +0 -0
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_command_line_handling.py +0 -0
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_concurrency_analyser/__init__.py +0 -0
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_concurrency_analyser/pydevd_concurrency_logger.py +0 -0
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_concurrency_analyser/pydevd_thread_wrappers.py +0 -0
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_console.py +0 -0
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_custom_frames.py +0 -0
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_cython.pxd +0 -0
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_cython_wrapper.py +0 -0
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_defaults.py +0 -0
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_dont_trace.py +0 -0
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_dont_trace_files.py +0 -0
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_exec2.py +0 -0
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_extension_api.py +0 -0
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_extension_utils.py +0 -0
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_filtering.py +0 -0
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_gevent_integration.py +0 -0
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_import_class.py +0 -0
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_io.py +0 -0
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_json_debug_options.py +0 -0
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_net_command.py +0 -0
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_net_command_factory_json.py +0 -0
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_net_command_factory_xml.py +0 -0
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_process_net_command.py +0 -0
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_referrers.py +0 -0
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_reload.py +0 -0
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_resolver.py +0 -0
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_runpy.py +0 -0
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_safe_repr.py +0 -0
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_signature.py +0 -0
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_source_mapping.py +0 -0
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_stackless.py +0 -0
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_suspended_frames.py +0 -0
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_thread_lifecycle.py +0 -0
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_timeout.py +0 -0
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_trace_dispatch.py +0 -0
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_trace_dispatch_regular.py +0 -0
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_traceproperty.py +0 -0
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_utils.py +0 -0
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_vars.py +0 -0
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_vm_type.py +0 -0
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_xml.py +0 -0
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/.gitignore +0 -0
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/__init__.py +0 -0
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/pydevd_frame_eval_cython_wrapper.py +0 -0
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/pydevd_frame_eval_main.py +0 -0
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/pydevd_frame_evaluator.pxd +0 -0
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/pydevd_frame_evaluator.pyx +0 -0
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/pydevd_frame_evaluator.template.pyx +0 -0
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/pydevd_frame_tracing.py +0 -0
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/release_mem.h +0 -0
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/README.txt +0 -0
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/__init__.py +0 -0
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode/__init__.py +0 -0
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode/bytecode.py +0 -0
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode/cfg.py +0 -0
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode/concrete.py +0 -0
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode/flags.py +0 -0
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode/instr.py +0 -0
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode/peephole_opt.py +0 -0
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode/tests/__init__.py +0 -0
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode/tests/test_bytecode.py +0 -0
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode/tests/test_cfg.py +0 -0
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode/tests/test_code.py +0 -0
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode/tests/test_concrete.py +0 -0
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode/tests/test_flags.py +0 -0
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode/tests/test_instr.py +0 -0
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode/tests/test_misc.py +0 -0
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode/tests/test_peephole_opt.py +0 -0
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode/tests/util_annotation.py +0 -0
- /debugpy-1.8.6/src/debugpy/_vendored/pydevd/pydev_ipython/__init__.py → /debugpy-1.8.8/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode-0.13.0.dev0.dist-info/REQUESTED +0 -0
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/pydevd_fix_code.py +0 -0
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/_vendored/pydevd/_pydevd_sys_monitoring/_pydevd_sys_monitoring_cython.pxd +0 -0
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/_vendored/pydevd/_pydevd_sys_monitoring/pydevd_sys_monitoring.py +0 -0
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/_vendored/pydevd/pydev_app_engine_debug_startup.py +0 -0
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/_vendored/pydevd/pydev_coverage.py +0 -0
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/_vendored/pydevd/pydev_ipython/README +0 -0
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/_vendored/pydevd/pydev_ipython/inputhook.py +0 -0
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/_vendored/pydevd/pydev_ipython/inputhookglut.py +0 -0
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/_vendored/pydevd/pydev_ipython/inputhookgtk.py +0 -0
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/_vendored/pydevd/pydev_ipython/inputhookgtk3.py +0 -0
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/_vendored/pydevd/pydev_ipython/inputhookpyglet.py +0 -0
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/_vendored/pydevd/pydev_ipython/inputhooktk.py +0 -0
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/_vendored/pydevd/pydev_ipython/inputhookwx.py +0 -0
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/_vendored/pydevd/pydev_ipython/matplotlibtools.py +0 -0
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/_vendored/pydevd/pydev_ipython/qt.py +0 -0
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/_vendored/pydevd/pydev_ipython/qt_for_kernel.py +0 -0
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/_vendored/pydevd/pydev_pysrc.py +0 -0
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/_vendored/pydevd/pydev_run_in_console.py +0 -0
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/_vendored/pydevd/pydev_sitecustomize/__not_in_default_pythonpath.txt +0 -0
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/_vendored/pydevd/pydev_sitecustomize/sitecustomize.py +0 -0
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/_vendored/pydevd/pydevconsole.py +0 -0
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/README.txt +0 -0
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/_always_live_program.py +0 -0
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/_check.py +0 -0
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/_test_attach_to_process.py +0 -0
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/_test_attach_to_process_linux.py +0 -0
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/attach_pydevd.py +0 -0
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/common/py_custom_pyeval_settrace.hpp +0 -0
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/common/py_custom_pyeval_settrace_310.hpp +0 -0
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/common/py_custom_pyeval_settrace_311.hpp +0 -0
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/common/py_custom_pyeval_settrace_common.hpp +0 -0
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/common/py_utils.hpp +0 -0
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/common/py_version.hpp +0 -0
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/common/python.h +0 -0
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/common/ref_utils.hpp +0 -0
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/linux_and_mac/.gitignore +0 -0
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/linux_and_mac/attach.cpp +0 -0
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/linux_and_mac/compile_linux.sh +0 -0
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/linux_and_mac/compile_mac.sh +0 -0
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/linux_and_mac/compile_manylinux.cmd +0 -0
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/linux_and_mac/lldb_prepare.py +0 -0
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/__init__.py +0 -0
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/breakpoint.py +0 -0
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/compat.py +0 -0
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/crash.py +0 -0
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/debug.py +0 -0
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/disasm.py +0 -0
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/event.py +0 -0
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/interactive.py +0 -0
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/module.py +0 -0
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/process.py +0 -0
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/registry.py +0 -0
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/search.py +0 -0
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/sql.py +0 -0
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/system.py +0 -0
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/textio.py +0 -0
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/thread.py +0 -0
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/util.py +0 -0
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/win32/__init__.py +0 -0
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/win32/advapi32.py +0 -0
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/win32/context_amd64.py +0 -0
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/win32/context_i386.py +0 -0
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/win32/dbghelp.py +0 -0
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/win32/defines.py +0 -0
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/win32/gdi32.py +0 -0
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/win32/kernel32.py +0 -0
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/win32/ntdll.py +0 -0
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/win32/peb_teb.py +0 -0
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/win32/psapi.py +0 -0
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/win32/shell32.py +0 -0
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/win32/shlwapi.py +0 -0
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/win32/user32.py +0 -0
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/win32/version.py +0 -0
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/win32/wtsapi32.py +0 -0
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/window.py +0 -0
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/windows/attach.h +0 -0
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/windows/inject_dll.cpp +0 -0
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/windows/py_win_helpers.hpp +0 -0
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/windows/run_code_in_memory.hpp +0 -0
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/windows/run_code_on_dllmain.cpp +0 -0
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/windows/stdafx.cpp +0 -0
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/windows/stdafx.h +0 -0
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/windows/targetver.h +0 -0
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/_vendored/pydevd/pydevd_plugins/__init__.py +0 -0
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/_vendored/pydevd/pydevd_plugins/extensions/README.md +0 -0
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/_vendored/pydevd/pydevd_plugins/extensions/__init__.py +0 -0
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/_vendored/pydevd/pydevd_plugins/extensions/types/__init__.py +0 -0
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/_vendored/pydevd/pydevd_plugins/extensions/types/pydevd_helpers.py +0 -0
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/_vendored/pydevd/pydevd_plugins/extensions/types/pydevd_plugin_numpy_types.py +0 -0
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/_vendored/pydevd/pydevd_plugins/extensions/types/pydevd_plugin_pandas_types.py +0 -0
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/_vendored/pydevd/pydevd_plugins/extensions/types/pydevd_plugins_django_form_str.py +0 -0
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/_vendored/pydevd/pydevd_plugins/pydevd_line_validation.py +0 -0
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/_vendored/pydevd/setup_pydevd_cython.py +0 -0
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/adapter/__init__.py +0 -0
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/adapter/__main__.py +0 -0
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/adapter/clients.py +0 -0
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/adapter/components.py +0 -0
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/adapter/launchers.py +0 -0
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/adapter/sessions.py +0 -0
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/common/json.py +0 -0
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/common/log.py +0 -0
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/common/messaging.py +0 -0
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/common/singleton.py +0 -0
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/common/sockets.py +0 -0
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/common/stacks.py +0 -0
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/common/timestamp.py +0 -0
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/common/util.py +0 -0
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/launcher/__init__.py +0 -0
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/launcher/__main__.py +0 -0
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/launcher/handlers.py +0 -0
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/launcher/output.py +0 -0
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/launcher/winapi.py +0 -0
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/public_api.py +0 -0
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/server/__init__.py +0 -0
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/server/attach_pid_injected.py +0 -0
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy/server/cli.py +0 -0
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy.egg-info/dependency_links.txt +0 -0
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy.egg-info/entry_points.txt +0 -0
- {debugpy-1.8.6 → debugpy-1.8.8}/src/debugpy.egg-info/top_level.txt +0 -0
- {debugpy-1.8.6 → debugpy-1.8.8}/versioneer.py +0 -0
|
@@ -13,7 +13,6 @@ import dis
|
|
|
13
13
|
import os
|
|
14
14
|
import re
|
|
15
15
|
import sys
|
|
16
|
-
|
|
17
16
|
from _pydev_bundle._pydev_saved_modules import threading
|
|
18
17
|
from types import CodeType, FrameType
|
|
19
18
|
from typing import Dict, Optional, Tuple, Any
|
|
@@ -22,6 +21,7 @@ from os.path import basename, splitext
|
|
|
22
21
|
from _pydev_bundle import pydev_log
|
|
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,
|
|
@@ -41,6 +40,7 @@ from _pydevd_bundle.pydevd_trace_dispatch import is_unhandled_exception
|
|
|
41
40
|
from _pydevd_bundle.pydevd_breakpoints import stop_on_unhandled_exception
|
|
42
41
|
from _pydevd_bundle.pydevd_utils import get_clsname_for_code
|
|
43
42
|
|
|
43
|
+
|
|
44
44
|
# fmt: off
|
|
45
45
|
# IFDEF CYTHON -- DONT EDIT THIS FILE (it is automatically generated)
|
|
46
46
|
import cython
|
|
@@ -66,10 +66,8 @@ _thread_local_info = threading.local()
|
|
|
66
66
|
_get_ident = threading.get_ident
|
|
67
67
|
_thread_active = threading._active # noqa
|
|
68
68
|
|
|
69
|
-
STATE_SUSPEND: int = 2
|
|
70
69
|
CMD_STEP_INTO: int = 107
|
|
71
70
|
CMD_STEP_OVER: int = 108
|
|
72
|
-
CMD_STEP_OVER_MY_CODE: int = 159
|
|
73
71
|
CMD_STEP_INTO_MY_CODE: int = 144
|
|
74
72
|
CMD_STEP_INTO_COROUTINE: int = 206
|
|
75
73
|
CMD_SMART_STEP_INTO: int = 128
|
|
@@ -178,65 +176,62 @@ cdef _get_bootstrap_frame(depth):
|
|
|
178
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:
|
|
@@ -415,8 +424,9 @@ cdef class FuncCodeInfo:
|
|
|
415
424
|
|
|
416
425
|
def get_line_of_offset(self, offset):
|
|
417
426
|
for start, end, line in self.code_obj.co_lines():
|
|
418
|
-
if
|
|
419
|
-
|
|
427
|
+
if start is not None and end is not None and line is not None:
|
|
428
|
+
if offset >= start and offset <= end:
|
|
429
|
+
return line
|
|
420
430
|
return -1
|
|
421
431
|
|
|
422
432
|
|
|
@@ -447,15 +457,41 @@ cdef _get_thread_info(bint create, int depth):
|
|
|
447
457
|
return _thread_local_info.thread_info
|
|
448
458
|
|
|
449
459
|
|
|
450
|
-
|
|
460
|
+
# fmt: off
|
|
461
|
+
# IFDEF CYTHON -- DONT EDIT THIS FILE (it is automatically generated)
|
|
462
|
+
cdef class _CodeLineInfo:
|
|
463
|
+
cdef dict line_to_offset
|
|
464
|
+
cdef int first_line
|
|
465
|
+
cdef int last_line
|
|
466
|
+
# ELSE
|
|
467
|
+
# class _CodeLineInfo:
|
|
468
|
+
# line_to_offset: Dict[int, Any]
|
|
469
|
+
# first_line: int
|
|
470
|
+
# last_line: int
|
|
471
|
+
# ENDIF
|
|
472
|
+
# fmt: on
|
|
451
473
|
|
|
474
|
+
# fmt: off
|
|
475
|
+
# IFDEF CYTHON -- DONT EDIT THIS FILE (it is automatically generated)
|
|
476
|
+
def __init__(self, dict line_to_offset, int first_line, int last_line):
|
|
477
|
+
self.line_to_offset = line_to_offset
|
|
478
|
+
self.first_line = first_line
|
|
479
|
+
self.last_line = last_line
|
|
480
|
+
# ELSE
|
|
481
|
+
# def __init__(self, line_to_offset, first_line, last_line):
|
|
482
|
+
# self.line_to_offset = line_to_offset
|
|
483
|
+
# self.first_line = first_line
|
|
484
|
+
# self.last_line = last_line
|
|
485
|
+
#
|
|
486
|
+
# ENDIF
|
|
487
|
+
# fmt: on
|
|
452
488
|
|
|
453
489
|
# Note: this method has a version in cython too
|
|
454
490
|
# fmt: off
|
|
455
491
|
# IFDEF CYTHON -- DONT EDIT THIS FILE (it is automatically generated)
|
|
456
|
-
cdef _get_code_line_info(code_obj, _cache={}):
|
|
492
|
+
cdef _CodeLineInfo _get_code_line_info(code_obj, _cache={}):
|
|
457
493
|
# ELSE
|
|
458
|
-
# def _get_code_line_info(code_obj, _cache={}):
|
|
494
|
+
# def _get_code_line_info(code_obj, _cache={}) -> _CodeLineInfo:
|
|
459
495
|
# ENDIF
|
|
460
496
|
# fmt: on
|
|
461
497
|
try:
|
|
@@ -466,9 +502,10 @@ cdef _get_code_line_info(code_obj, _cache={}):
|
|
|
466
502
|
last_line = None
|
|
467
503
|
|
|
468
504
|
for offset, line in dis.findlinestarts(code_obj):
|
|
469
|
-
|
|
505
|
+
if offset is not None and line is not None:
|
|
506
|
+
line_to_offset[line] = offset
|
|
470
507
|
|
|
471
|
-
if line_to_offset:
|
|
508
|
+
if len(line_to_offset):
|
|
472
509
|
first_line = min(line_to_offset)
|
|
473
510
|
last_line = max(line_to_offset)
|
|
474
511
|
ret = _CodeLineInfo(line_to_offset, first_line, last_line)
|
|
@@ -837,23 +874,23 @@ cdef _unwind_event(code, instruction, exc):
|
|
|
837
874
|
if thread_info is None:
|
|
838
875
|
return
|
|
839
876
|
|
|
840
|
-
frame = _getframe(1)
|
|
841
|
-
arg = (type(exc), exc, exc.__traceback__)
|
|
842
877
|
|
|
843
878
|
py_db: object = GlobalDebuggerHolder.global_dbg
|
|
844
879
|
if py_db is None or py_db.pydb_disposed:
|
|
845
880
|
return
|
|
846
881
|
|
|
847
|
-
if not thread_info.trace or thread_info.
|
|
882
|
+
if not thread_info.trace or not thread_info.is_thread_alive():
|
|
848
883
|
# For thread-related stuff we can't disable the code tracing because other
|
|
849
884
|
# threads may still want it...
|
|
850
885
|
return
|
|
851
|
-
|
|
886
|
+
|
|
852
887
|
func_code_info: FuncCodeInfo = _get_func_code_info(code, 1)
|
|
853
888
|
if func_code_info.always_skip_code:
|
|
854
889
|
return
|
|
855
|
-
|
|
890
|
+
|
|
856
891
|
# print('_unwind_event', code, exc)
|
|
892
|
+
frame = _getframe(1)
|
|
893
|
+
arg = (type(exc), exc, exc.__traceback__)
|
|
857
894
|
|
|
858
895
|
has_caught_exception_breakpoint_in_pydb = (
|
|
859
896
|
py_db.break_on_caught_exceptions or py_db.break_on_user_uncaught_exceptions or py_db.has_plugin_exception_breaks
|
|
@@ -862,7 +899,7 @@ cdef _unwind_event(code, instruction, exc):
|
|
|
862
899
|
|
|
863
900
|
if has_caught_exception_breakpoint_in_pydb:
|
|
864
901
|
_should_stop, frame, user_uncaught_exc_info = should_stop_on_exception(
|
|
865
|
-
py_db, thread_info.additional_info, frame, thread_info.thread, arg, None
|
|
902
|
+
py_db, thread_info.additional_info, frame, thread_info.thread, arg, None, is_unwind=True
|
|
866
903
|
)
|
|
867
904
|
if user_uncaught_exc_info:
|
|
868
905
|
# TODO: Check: this may no longer be needed as in the unwind we know it's
|
|
@@ -876,13 +913,14 @@ cdef _unwind_event(code, instruction, exc):
|
|
|
876
913
|
)
|
|
877
914
|
|
|
878
915
|
if is_unhandled:
|
|
879
|
-
# print('stop in user uncaught')
|
|
880
916
|
handle_exception(py_db, thread_info.thread, frame, user_uncaught_exc_info[0], EXCEPTION_TYPE_USER_UNHANDLED)
|
|
881
917
|
return
|
|
882
918
|
|
|
883
919
|
break_on_uncaught_exceptions = py_db.break_on_uncaught_exceptions
|
|
884
|
-
if break_on_uncaught_exceptions
|
|
885
|
-
|
|
920
|
+
if break_on_uncaught_exceptions:
|
|
921
|
+
if frame is _get_unhandled_exception_frame(exc, 1):
|
|
922
|
+
stop_on_unhandled_exception(py_db, thread_info.thread, thread_info.additional_info, arg)
|
|
923
|
+
return
|
|
886
924
|
|
|
887
925
|
|
|
888
926
|
# fmt: off
|
|
@@ -910,15 +948,12 @@ cdef _raise_event(code, instruction, exc):
|
|
|
910
948
|
thread_info = _get_thread_info(True, 1)
|
|
911
949
|
if thread_info is None:
|
|
912
950
|
return
|
|
913
|
-
|
|
914
|
-
frame = _getframe(1)
|
|
915
|
-
arg = (type(exc), exc, exc.__traceback__)
|
|
916
|
-
|
|
951
|
+
|
|
917
952
|
py_db: object = GlobalDebuggerHolder.global_dbg
|
|
918
953
|
if py_db is None or py_db.pydb_disposed:
|
|
919
954
|
return
|
|
920
955
|
|
|
921
|
-
if not thread_info.trace or thread_info.
|
|
956
|
+
if not thread_info.trace or not thread_info.is_thread_alive():
|
|
922
957
|
# For thread-related stuff we can't disable the code tracing because other
|
|
923
958
|
# threads may still want it...
|
|
924
959
|
return
|
|
@@ -927,7 +962,8 @@ cdef _raise_event(code, instruction, exc):
|
|
|
927
962
|
if func_code_info.always_skip_code:
|
|
928
963
|
return
|
|
929
964
|
|
|
930
|
-
|
|
965
|
+
frame = _getframe(1)
|
|
966
|
+
arg = (type(exc), exc, exc.__traceback__)
|
|
931
967
|
|
|
932
968
|
# Compute the previous exception info (if any). We use it to check if the exception
|
|
933
969
|
# should be stopped
|
|
@@ -943,10 +979,6 @@ cdef _raise_event(code, instruction, exc):
|
|
|
943
979
|
if should_stop:
|
|
944
980
|
handle_exception(py_db, thread_info.thread, frame, arg, EXCEPTION_TYPE_HANDLED)
|
|
945
981
|
|
|
946
|
-
# Once we leave the raise event, we are no longer in the state of 'just_raised', so
|
|
947
|
-
# indicate that this traceback is for an exception in the unwinding state
|
|
948
|
-
flag_as_unwinding(exc.__traceback__)
|
|
949
|
-
|
|
950
982
|
|
|
951
983
|
# fmt: off
|
|
952
984
|
# IFDEF CYTHON -- DONT EDIT THIS FILE (it is automatically generated)
|
|
@@ -1036,7 +1068,7 @@ cdef _return_event(code, instruction, retval):
|
|
|
1036
1068
|
if py_db is None or py_db.pydb_disposed:
|
|
1037
1069
|
return monitor.DISABLE
|
|
1038
1070
|
|
|
1039
|
-
if not thread_info.trace or thread_info.
|
|
1071
|
+
if not thread_info.trace or not thread_info.is_thread_alive():
|
|
1040
1072
|
# For thread-related stuff we can't disable the code tracing because other
|
|
1041
1073
|
# threads may still want it...
|
|
1042
1074
|
return
|
|
@@ -1347,7 +1379,11 @@ cdef _jump_event(code, int from_offset, int to_offset):
|
|
|
1347
1379
|
if py_db is None or py_db.pydb_disposed:
|
|
1348
1380
|
return monitor.DISABLE
|
|
1349
1381
|
|
|
1350
|
-
|
|
1382
|
+
# If we get another jump event, remove the extra check for the line event
|
|
1383
|
+
if hasattr(_thread_local_info, "f_disable_next_line_if_match"):
|
|
1384
|
+
del _thread_local_info.f_disable_next_line_if_match
|
|
1385
|
+
|
|
1386
|
+
if not thread_info.trace or not thread_info.is_thread_alive():
|
|
1351
1387
|
# For thread-related stuff we can't disable the code tracing because other
|
|
1352
1388
|
# threads may still want it...
|
|
1353
1389
|
return
|
|
@@ -1363,9 +1399,8 @@ cdef _jump_event(code, int from_offset, int to_offset):
|
|
|
1363
1399
|
if to_offset > from_offset:
|
|
1364
1400
|
return monitor.DISABLE
|
|
1365
1401
|
|
|
1366
|
-
from_line = func_code_info.get_line_of_offset(from_offset)
|
|
1367
|
-
to_line = func_code_info.get_line_of_offset(to_offset)
|
|
1368
|
-
# print('jump event', code.co_name, 'from line', from_line, 'to line', to_line)
|
|
1402
|
+
from_line = func_code_info.get_line_of_offset(from_offset or 0)
|
|
1403
|
+
to_line = func_code_info.get_line_of_offset(to_offset or 0)
|
|
1369
1404
|
|
|
1370
1405
|
if from_line != to_line:
|
|
1371
1406
|
# I.e.: use case: "yield from [j for j in a if j % 2 == 0]"
|
|
@@ -1375,7 +1410,8 @@ cdef _jump_event(code, int from_offset, int to_offset):
|
|
|
1375
1410
|
frame = _getframe(1)
|
|
1376
1411
|
|
|
1377
1412
|
# Disable the next line event as we're jumping to a line. The line event will be redundant.
|
|
1378
|
-
_thread_local_info.f_disable_next_line_if_match = frame.f_lineno
|
|
1413
|
+
_thread_local_info.f_disable_next_line_if_match = (func_code_info.co_filename, frame.f_lineno)
|
|
1414
|
+
# pydev_log.debug('_jump_event', code.co_name, 'from line', from_line, 'to line', frame.f_lineno)
|
|
1379
1415
|
|
|
1380
1416
|
return _internal_line_event(func_code_info, frame, frame.f_lineno)
|
|
1381
1417
|
|
|
@@ -1404,24 +1440,26 @@ cdef _line_event(code, int line):
|
|
|
1404
1440
|
if py_db is None or py_db.pydb_disposed:
|
|
1405
1441
|
return monitor.DISABLE
|
|
1406
1442
|
|
|
1407
|
-
|
|
1443
|
+
# If we get another line event, remove the extra check for the line event
|
|
1444
|
+
if hasattr(_thread_local_info, "f_disable_next_line_if_match"):
|
|
1445
|
+
(co_filename, line_to_skip) = _thread_local_info.f_disable_next_line_if_match
|
|
1446
|
+
del _thread_local_info.f_disable_next_line_if_match
|
|
1447
|
+
if line_to_skip is line and co_filename == code.co_filename:
|
|
1448
|
+
# The last jump already jumped to this line and we haven't had any
|
|
1449
|
+
# line events or jumps since then. We don't want to consider this line twice
|
|
1450
|
+
# pydev_log.debug('_line_event skipped', line)
|
|
1451
|
+
return
|
|
1452
|
+
|
|
1453
|
+
if not thread_info.trace or not thread_info.is_thread_alive():
|
|
1408
1454
|
# For thread-related stuff we can't disable the code tracing because other
|
|
1409
1455
|
# threads may still want it...
|
|
1410
1456
|
return
|
|
1411
1457
|
|
|
1412
|
-
if hasattr(_thread_local_info, "f_disable_next_line_if_match"):
|
|
1413
|
-
if _thread_local_info.f_disable_next_line_if_match is line:
|
|
1414
|
-
# If we're in a jump, we should skip this line event. The jump would have
|
|
1415
|
-
# been considered a line event for this same line and we don't want to
|
|
1416
|
-
# stop twice.
|
|
1417
|
-
del _thread_local_info.f_disable_next_line_if_match
|
|
1418
|
-
return
|
|
1419
|
-
|
|
1420
1458
|
func_code_info: FuncCodeInfo = _get_func_code_info(code, 1)
|
|
1421
1459
|
if func_code_info.always_skip_code or func_code_info.always_filtered_out:
|
|
1422
1460
|
return monitor.DISABLE
|
|
1423
1461
|
|
|
1424
|
-
#
|
|
1462
|
+
# pydev_log.debug('_line_event', code.co_name, line)
|
|
1425
1463
|
|
|
1426
1464
|
# We know the frame depth.
|
|
1427
1465
|
frame = _getframe(1)
|
|
@@ -1651,7 +1689,7 @@ cdef _start_method_event(code, instruction_offset):
|
|
|
1651
1689
|
if py_db is None or py_db.pydb_disposed:
|
|
1652
1690
|
return monitor.DISABLE
|
|
1653
1691
|
|
|
1654
|
-
if not thread_info.trace or thread_info.
|
|
1692
|
+
if not thread_info.trace or not thread_info.is_thread_alive():
|
|
1655
1693
|
# For thread-related stuff we can't disable the code tracing because other
|
|
1656
1694
|
# threads may still want it...
|
|
1657
1695
|
return
|
|
@@ -1848,7 +1886,10 @@ def update_monitor_events(suspend_requested: Optional[bool] = None) -> None:
|
|
|
1848
1886
|
monitor.register_callback(DEBUGGER_ID, monitor.events.PY_START, _start_method_event)
|
|
1849
1887
|
# monitor.register_callback(DEBUGGER_ID, monitor.events.PY_RESUME, _resume_method_event)
|
|
1850
1888
|
monitor.register_callback(DEBUGGER_ID, monitor.events.LINE, _line_event)
|
|
1851
|
-
|
|
1889
|
+
if not IS_PY313_OR_GREATER:
|
|
1890
|
+
# In Python 3.13+ jump_events aren't necessary as we have a line_event for every
|
|
1891
|
+
# jump location.
|
|
1892
|
+
monitor.register_callback(DEBUGGER_ID, monitor.events.JUMP, _jump_event)
|
|
1852
1893
|
monitor.register_callback(DEBUGGER_ID, monitor.events.PY_RETURN, _return_event)
|
|
1853
1894
|
|
|
1854
1895
|
else:
|
|
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")
|