debugpy 1.8.5__zip → 1.8.6__zip
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {debugpy-1.8.5/src/debugpy.egg-info → debugpy-1.8.6}/PKG-INFO +1 -1
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydev_bundle/_pydev_calltip_util.py +19 -21
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydev_bundle/_pydev_completer.py +30 -30
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydev_bundle/_pydev_execfile.py +3 -1
- debugpy-1.8.6/src/debugpy/_vendored/pydevd/_pydev_bundle/_pydev_filesystem_encoding.py +43 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydev_bundle/_pydev_getopt.py +35 -32
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydev_bundle/_pydev_imports_tipper.py +83 -84
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydev_bundle/_pydev_jy_imports_tipper.py +92 -99
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydev_bundle/_pydev_log.py +2 -3
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydev_bundle/_pydev_saved_modules.py +51 -27
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydev_bundle/_pydev_sys_patch.py +11 -7
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydev_bundle/_pydev_tipper_common.py +6 -5
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydev_bundle/fsnotify/__init__.py +34 -38
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydev_bundle/pydev_console_utils.py +71 -69
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydev_bundle/pydev_import_hook.py +1 -3
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydev_bundle/pydev_imports.py +0 -1
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydev_bundle/pydev_ipython_console.py +14 -16
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydev_bundle/pydev_ipython_console_011.py +81 -93
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydev_bundle/pydev_is_thread_alive.py +3 -3
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydev_bundle/pydev_localhost.py +9 -8
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydev_bundle/pydev_log.py +33 -25
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydev_bundle/pydev_monkey.py +183 -170
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydev_bundle/pydev_monkey_qt.py +33 -29
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydev_bundle/pydev_override.py +6 -4
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydev_bundle/pydev_umd.py +19 -18
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydev_bundle/pydev_versioncheck.py +3 -3
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydev_runfiles/pydev_runfiles.py +165 -138
- debugpy-1.8.6/src/debugpy/_vendored/pydevd/_pydev_runfiles/pydev_runfiles_coverage.py +77 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydev_runfiles/pydev_runfiles_nose.py +35 -36
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydev_runfiles/pydev_runfiles_parallel.py +22 -23
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydev_runfiles/pydev_runfiles_parallel_client.py +37 -57
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydev_runfiles/pydev_runfiles_pytest2.py +54 -52
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydev_runfiles/pydev_runfiles_unittest.py +28 -37
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydev_runfiles/pydev_runfiles_xml_rpc.py +56 -53
- debugpy-1.8.6/src/debugpy/_vendored/pydevd/_pydevd_bundle/_debug_adapter/__main__pydevd_gen_debug_adapter_protocol.py +604 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/_debug_adapter/debugProtocol.json +551 -445
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/_debug_adapter/pydevd_base_schema.py +25 -29
- debugpy-1.8.6/src/debugpy/_vendored/pydevd/_pydevd_bundle/_debug_adapter/pydevd_schema.py +17458 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/_debug_adapter/pydevd_schema_log.py +11 -12
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevconsole_code.py +18 -19
- debugpy-1.8.6/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_additional_thread_info.py +41 -0
- debugpy-1.8.6/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_additional_thread_info_regular.py +327 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_api.py +263 -214
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_breakpoints.py +7 -10
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_bytecode_utils.py +187 -92
- debugpy-1.8.6/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_bytecode_utils_py311.py +105 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_code_to_source.py +46 -51
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_collect_bytecode_info.py +239 -176
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_comm.py +370 -297
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_comm_constants.py +78 -86
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_command_line_handling.py +55 -59
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_concurrency_analyser/pydevd_concurrency_logger.py +194 -58
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_concurrency_analyser/pydevd_thread_wrappers.py +2 -3
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_console.py +18 -23
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_constants.py +157 -127
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_custom_frames.py +10 -12
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_cython.c +35217 -23106
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_cython.pxd +15 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_cython.pyx +802 -511
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_cython_wrapper.py +18 -7
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_daemon_thread.py +32 -24
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_defaults.py +11 -13
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_dont_trace.py +16 -16
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_dont_trace_files.py +27 -2
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_exec2.py +1 -1
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_extension_api.py +4 -5
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_extension_utils.py +8 -10
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_filtering.py +50 -45
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_frame.py +462 -407
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_frame_utils.py +63 -61
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_gevent_integration.py +14 -16
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_import_class.py +27 -25
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_io.py +40 -42
- debugpy-1.8.6/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_json_debug_options.py +200 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_net_command.py +20 -19
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_net_command_factory_json.py +199 -108
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_net_command_factory_xml.py +121 -73
- debugpy-1.8.6/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_plugin_utils.py +208 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_process_net_command.py +206 -159
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_process_net_command_json.py +346 -334
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_referrers.py +75 -80
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_reload.py +35 -35
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_resolver.py +116 -124
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_runpy.py +44 -58
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_safe_repr.py +51 -55
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_save_locals.py +4 -2
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_signature.py +24 -24
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_source_mapping.py +19 -20
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_stackless.py +45 -49
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_suspended_frames.py +61 -58
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_thread_lifecycle.py +23 -13
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_timeout.py +29 -31
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_trace_dispatch.py +41 -11
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_trace_dispatch_regular.py +117 -55
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_traceproperty.py +11 -14
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_utils.py +90 -89
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_vars.py +106 -97
- debugpy-1.8.6/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_vm_type.py +40 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_xml.py +56 -46
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/pydevd_frame_eval_cython_wrapper.py +5 -5
- debugpy-1.8.6/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/pydevd_frame_eval_main.py +71 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/pydevd_frame_evaluator.c +11165 -5326
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/pydevd_frame_tracing.py +5 -6
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/pydevd_modify_bytecode.py +53 -56
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode/__init__.py +1 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode/bytecode.py +4 -6
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode/cfg.py +6 -26
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode/concrete.py +7 -21
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode/flags.py +5 -24
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode/instr.py +10 -34
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode/peephole_opt.py +1 -4
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode/tests/__init__.py +2 -6
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode/tests/test_bytecode.py +3 -5
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode/tests/test_cfg.py +11 -31
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode/tests/test_code.py +2 -2
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode/tests/test_concrete.py +14 -41
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode/tests/test_flags.py +2 -4
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode/tests/test_instr.py +7 -18
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode/tests/test_misc.py +6 -18
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode/tests/test_peephole_opt.py +7 -18
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode/tests/util_annotation.py +1 -3
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/pydevd_fix_code.py +14 -19
- debugpy-1.8.6/src/debugpy/_vendored/pydevd/_pydevd_sys_monitoring/_pydevd_sys_monitoring.py +1927 -0
- debugpy-1.8.6/src/debugpy/_vendored/pydevd/_pydevd_sys_monitoring/_pydevd_sys_monitoring_cython.c +43058 -0
- debugpy-1.8.6/src/debugpy/_vendored/pydevd/_pydevd_sys_monitoring/_pydevd_sys_monitoring_cython.pxd +46 -0
- debugpy-1.8.6/src/debugpy/_vendored/pydevd/_pydevd_sys_monitoring/_pydevd_sys_monitoring_cython.pyx +1934 -0
- debugpy-1.8.6/src/debugpy/_vendored/pydevd/_pydevd_sys_monitoring/pydevd_sys_monitoring.py +16 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydev_app_engine_debug_startup.py +12 -11
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydev_coverage.py +30 -32
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydev_ipython/inputhook.py +58 -54
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydev_ipython/inputhookglut.py +20 -24
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydev_ipython/inputhookgtk.py +8 -7
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydev_ipython/inputhookgtk3.py +8 -6
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydev_ipython/inputhookpyglet.py +11 -8
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydev_ipython/inputhookqt4.py +21 -18
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydev_ipython/inputhookqt5.py +17 -15
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydev_ipython/inputhookqt6.py +17 -15
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydev_ipython/inputhooktk.py +6 -4
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydev_ipython/inputhookwx.py +14 -10
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydev_ipython/matplotlibtools.py +30 -26
- debugpy-1.8.6/src/debugpy/_vendored/pydevd/pydev_ipython/qt.py +24 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydev_ipython/qt_for_kernel.py +37 -34
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydev_ipython/qt_loaders.py +86 -73
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydev_ipython/version.py +7 -7
- debugpy-1.8.6/src/debugpy/_vendored/pydevd/pydev_pysrc.py +1 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydev_run_in_console.py +23 -24
- debugpy-1.8.6/src/debugpy/_vendored/pydevd/pydev_sitecustomize/sitecustomize.py +267 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevconsole.py +55 -47
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd.py +732 -508
- debugpy-1.8.6/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/_always_live_program.py +40 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/_check.py +1 -0
- debugpy-1.8.6/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/_test_attach_to_process.py +11 -0
- debugpy-1.8.6/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/_test_attach_to_process_linux.py +75 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/add_code_to_python_process.py +130 -125
- 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_pydevd.py +89 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/attach_script.py +41 -32
- 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.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/common/py_utils.hpp +1 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/common/py_version.hpp +9 -1
- debugpy-1.8.6/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/inject_dll_amd64.exe +0 -0
- debugpy-1.8.6/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/inject_dll_amd64.pdb +0 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/inject_dll_x86.exe +0 -0
- debugpy-1.8.6/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/inject_dll_x86.pdb +0 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/linux_and_mac/lldb_prepare.py +10 -9
- debugpy-1.8.6/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/run_code_on_dllmain_amd64.dll +0 -0
- debugpy-1.8.6/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/run_code_on_dllmain_amd64.pdb +0 -0
- debugpy-1.8.6/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/run_code_on_dllmain_x86.dll +0 -0
- debugpy-1.8.6/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/run_code_on_dllmain_x86.pdb +0 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/__init__.py +103 -119
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/breakpoint.py +457 -516
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/compat.py +33 -15
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/crash.py +336 -281
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/debug.py +101 -131
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/disasm.py +148 -153
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/event.py +310 -302
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/interactive.py +235 -208
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/module.py +185 -218
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/process.py +428 -564
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/registry.py +54 -53
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/search.py +69 -73
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/sql.py +158 -170
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/system.py +143 -213
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/textio.py +302 -333
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/thread.py +220 -239
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/util.py +198 -177
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/win32/__init__.py +11 -11
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/win32/advapi32.py +1191 -713
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/win32/context_amd64.py +248 -194
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/win32/context_i386.py +132 -120
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/win32/dbghelp.py +450 -346
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/win32/defines.py +305 -286
- debugpy-1.8.6/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/win32/gdi32.py +526 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/win32/kernel32.py +1479 -1097
- debugpy-1.8.6/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/win32/ntdll.py +579 -0
- debugpy-1.8.6/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/win32/peb_teb.py +3517 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/win32/psapi.py +54 -31
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/win32/shell32.py +170 -149
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/win32/shlwapi.py +190 -108
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/win32/user32.py +542 -437
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/win32/version.py +489 -442
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/win32/wtsapi32.py +83 -65
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/window.py +70 -76
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/windows/attach.cpp +17 -9
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/windows/compile_windows.bat +1 -1
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_file_utils.py +141 -120
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_plugins/__init__.py +1 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_plugins/django_debug.py +175 -149
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_plugins/extensions/__init__.py +1 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_plugins/extensions/types/__init__.py +1 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_plugins/extensions/types/pydevd_helpers.py +5 -5
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_plugins/extensions/types/pydevd_plugin_numpy_types.py +28 -28
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_plugins/extensions/types/pydevd_plugin_pandas_types.py +22 -30
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_plugins/extensions/types/pydevd_plugins_django_form_str.py +3 -2
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_plugins/jinja2_debug.py +130 -108
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_plugins/pydevd_line_validation.py +27 -14
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_tracing.py +85 -66
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/setup_pydevd_cython.py +96 -59
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_version.py +3 -3
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/common/messaging.py +2 -1
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/server/cli.py +32 -17
- {debugpy-1.8.5 → debugpy-1.8.6/src/debugpy.egg-info}/PKG-INFO +1 -1
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy.egg-info/SOURCES.txt +6 -1
- debugpy-1.8.5/src/debugpy/_vendored/pydevd/_pydev_bundle/_pydev_filesystem_encoding.py +0 -41
- debugpy-1.8.5/src/debugpy/_vendored/pydevd/_pydev_runfiles/pydev_runfiles_coverage.py +0 -76
- debugpy-1.8.5/src/debugpy/_vendored/pydevd/_pydevd_bundle/_debug_adapter/__main__pydevd_gen_debug_adapter_protocol.py +0 -592
- debugpy-1.8.5/src/debugpy/_vendored/pydevd/_pydevd_bundle/_debug_adapter/pydevd_schema.py +0 -19514
- debugpy-1.8.5/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_additional_thread_info.py +0 -19
- debugpy-1.8.5/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_additional_thread_info_regular.py +0 -153
- debugpy-1.8.5/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_json_debug_options.py +0 -204
- debugpy-1.8.5/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_plugin_utils.py +0 -91
- debugpy-1.8.5/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_trace_api.py +0 -62
- debugpy-1.8.5/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_vm_type.py +0 -41
- debugpy-1.8.5/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/pydevd_frame_eval_main.py +0 -48
- debugpy-1.8.5/src/debugpy/_vendored/pydevd/pydev_ipython/qt.py +0 -23
- debugpy-1.8.5/src/debugpy/_vendored/pydevd/pydev_pysrc.py +0 -1
- debugpy-1.8.5/src/debugpy/_vendored/pydevd/pydev_sitecustomize/sitecustomize.py +0 -237
- debugpy-1.8.5/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/_always_live_program.py +0 -32
- debugpy-1.8.5/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/_test_attach_to_process.py +0 -9
- debugpy-1.8.5/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/_test_attach_to_process_linux.py +0 -74
- debugpy-1.8.5/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/attach_amd64.dll +0 -0
- debugpy-1.8.5/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/attach_amd64.pdb +0 -0
- debugpy-1.8.5/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/attach_pydevd.py +0 -79
- debugpy-1.8.5/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/attach_x86.dll +0 -0
- debugpy-1.8.5/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/attach_x86.pdb +0 -0
- debugpy-1.8.5/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/inject_dll_amd64.exe +0 -0
- debugpy-1.8.5/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/inject_dll_amd64.pdb +0 -0
- debugpy-1.8.5/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/inject_dll_x86.pdb +0 -0
- debugpy-1.8.5/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/run_code_on_dllmain_amd64.dll +0 -0
- debugpy-1.8.5/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/run_code_on_dllmain_amd64.pdb +0 -0
- debugpy-1.8.5/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/run_code_on_dllmain_x86.dll +0 -0
- debugpy-1.8.5/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/run_code_on_dllmain_x86.pdb +0 -0
- debugpy-1.8.5/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/win32/gdi32.py +0 -507
- debugpy-1.8.5/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/win32/ntdll.py +0 -539
- debugpy-1.8.5/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/win32/peb_teb.py +0 -3435
- {debugpy-1.8.5 → debugpy-1.8.6}/DESCRIPTION.md +0 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/LICENSE +0 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/MANIFEST.in +0 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/README.md +0 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/pyproject.toml +0 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/setup.cfg +0 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/setup.py +0 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/ThirdPartyNotices.txt +0 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/__init__.py +0 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/__main__.py +0 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/__init__.py +0 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/_pydevd_packaging.py +0 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/_util.py +0 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/force_pydevd.py +0 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydev_bundle/__init__.py +0 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydev_runfiles/__init__.py +0 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/__init__.py +0 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/_debug_adapter/__init__.py +0 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/_debug_adapter/debugProtocolCustom.json +0 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_concurrency_analyser/__init__.py +0 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/.gitignore +0 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/__init__.py +0 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/pydevd_frame_evaluator.pxd +0 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/pydevd_frame_evaluator.pyx +0 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/pydevd_frame_evaluator.template.pyx +0 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/release_mem.h +0 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/README.txt +0 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/__init__.py +0 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydev_ipython/README +0 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydev_ipython/__init__.py +0 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydev_sitecustomize/__not_in_default_pythonpath.txt +0 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/README.txt +0 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/common/py_custom_pyeval_settrace.hpp +0 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/common/py_custom_pyeval_settrace_310.hpp +0 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/common/py_custom_pyeval_settrace_311.hpp +0 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/common/py_custom_pyeval_settrace_common.hpp +0 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/common/py_settrace.hpp +0 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/common/python.h +0 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/common/ref_utils.hpp +0 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/linux_and_mac/.gitignore +0 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/linux_and_mac/attach.cpp +0 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/linux_and_mac/compile_linux.sh +0 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/linux_and_mac/compile_mac.sh +0 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/linux_and_mac/compile_manylinux.cmd +0 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/windows/attach.h +0 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/windows/inject_dll.cpp +0 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/windows/py_win_helpers.hpp +0 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/windows/run_code_in_memory.hpp +0 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/windows/run_code_on_dllmain.cpp +0 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/windows/stdafx.cpp +0 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/windows/stdafx.h +0 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/windows/targetver.h +0 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_plugins/extensions/README.md +0 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/adapter/__init__.py +0 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/adapter/__main__.py +0 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/adapter/clients.py +0 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/adapter/components.py +0 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/adapter/launchers.py +0 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/adapter/servers.py +0 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/adapter/sessions.py +0 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/common/__init__.py +0 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/common/json.py +0 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/common/log.py +0 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/common/singleton.py +0 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/common/sockets.py +0 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/common/stacks.py +0 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/common/timestamp.py +0 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/common/util.py +0 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/launcher/__init__.py +0 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/launcher/__main__.py +0 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/launcher/debuggee.py +0 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/launcher/handlers.py +0 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/launcher/output.py +0 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/launcher/winapi.py +0 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/public_api.py +0 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/server/__init__.py +0 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/server/api.py +0 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/server/attach_pid_injected.py +0 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy.egg-info/dependency_links.txt +0 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy.egg-info/entry_points.txt +0 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy.egg-info/top_level.txt +0 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/versioneer.py +0 -0
{debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_constants.py
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
|
|
1
|
+
"""
|
|
2
2
|
This module holds the constants used for specifying the states of the debugger.
|
|
3
|
-
|
|
3
|
+
"""
|
|
4
4
|
from __future__ import nested_scopes
|
|
5
5
|
import platform
|
|
6
6
|
import weakref
|
|
@@ -28,6 +28,7 @@ import sys # Note: the sys import must be here anyways (others depend on it)
|
|
|
28
28
|
|
|
29
29
|
# Preload codecs to avoid imports to them later on which can potentially halt the debugger.
|
|
30
30
|
import codecs as _codecs
|
|
31
|
+
|
|
31
32
|
for _codec in ["ascii", "utf8", "utf-8", "latin1", "latin-1", "idna"]:
|
|
32
33
|
_codecs.lookup(_codec)
|
|
33
34
|
|
|
@@ -47,22 +48,22 @@ class DebugInfoHolder:
|
|
|
47
48
|
# In PyPy "<builtin> ..." can appear and should be ignored for the user.
|
|
48
49
|
# <attrs is used internally by attrs
|
|
49
50
|
# <__array_function__ is used by numpy
|
|
50
|
-
IGNORE_BASENAMES_STARTING_WITH = (
|
|
51
|
+
IGNORE_BASENAMES_STARTING_WITH = ("<frozen ", "<builtin", "<attrs", "<__array_function__")
|
|
51
52
|
|
|
52
53
|
# Note: <string> has special heuristics to know whether it should be traced or not (it's part of
|
|
53
54
|
# user code when it's the <string> used in python -c and part of the library otherwise).
|
|
54
55
|
|
|
55
56
|
# Any filename that starts with these strings is considered user (project) code. Note
|
|
56
57
|
# that files for which we have a source mapping are also considered as a part of the project.
|
|
57
|
-
USER_CODE_BASENAMES_STARTING_WITH = (
|
|
58
|
+
USER_CODE_BASENAMES_STARTING_WITH = ("<ipython",)
|
|
58
59
|
|
|
59
60
|
# Any filename that starts with these strings is considered library code (note: checked after USER_CODE_BASENAMES_STARTING_WITH).
|
|
60
|
-
LIBRARY_CODE_BASENAMES_STARTING_WITH = (
|
|
61
|
+
LIBRARY_CODE_BASENAMES_STARTING_WITH = ("<",)
|
|
61
62
|
|
|
62
|
-
IS_CPYTHON = platform.python_implementation() ==
|
|
63
|
+
IS_CPYTHON = platform.python_implementation() == "CPython"
|
|
63
64
|
|
|
64
65
|
# Hold a reference to the original _getframe (because psyco will change that as soon as it's imported)
|
|
65
|
-
IS_IRONPYTHON = sys.platform ==
|
|
66
|
+
IS_IRONPYTHON = sys.platform == "cli"
|
|
66
67
|
try:
|
|
67
68
|
get_frame = sys._getframe
|
|
68
69
|
if IS_IRONPYTHON:
|
|
@@ -76,49 +77,51 @@ try:
|
|
|
76
77
|
except AttributeError:
|
|
77
78
|
|
|
78
79
|
def get_frame():
|
|
79
|
-
raise AssertionError(
|
|
80
|
+
raise AssertionError("sys._getframe not available (possible causes: enable -X:Frames on IronPython?)")
|
|
81
|
+
|
|
80
82
|
|
|
81
83
|
# Used to determine the maximum size of each variable passed to eclipse -- having a big value here may make
|
|
82
84
|
# the communication slower -- as the variables are being gathered lazily in the latest version of eclipse,
|
|
83
85
|
# this value was raised from 200 to 1000.
|
|
84
86
|
MAXIMUM_VARIABLE_REPRESENTATION_SIZE = 1000
|
|
85
87
|
# Prefix for saving functions return values in locals
|
|
86
|
-
RETURN_VALUES_DICT =
|
|
87
|
-
GENERATED_LEN_ATTR_NAME =
|
|
88
|
+
RETURN_VALUES_DICT = "__pydevd_ret_val_dict"
|
|
89
|
+
GENERATED_LEN_ATTR_NAME = "len()"
|
|
88
90
|
|
|
89
91
|
import os
|
|
90
92
|
|
|
91
93
|
from _pydevd_bundle import pydevd_vm_type
|
|
92
94
|
|
|
93
95
|
# Constant detects when running on Jython/windows properly later on.
|
|
94
|
-
IS_WINDOWS = sys.platform ==
|
|
95
|
-
IS_LINUX = sys.platform in (
|
|
96
|
-
IS_MAC = sys.platform ==
|
|
97
|
-
IS_WASM = sys.platform ==
|
|
96
|
+
IS_WINDOWS = sys.platform == "win32"
|
|
97
|
+
IS_LINUX = sys.platform in ("linux", "linux2")
|
|
98
|
+
IS_MAC = sys.platform == "darwin"
|
|
99
|
+
IS_WASM = sys.platform == "emscripten" or sys.platform == "wasi"
|
|
98
100
|
|
|
99
|
-
IS_64BIT_PROCESS = sys.maxsize > (2
|
|
101
|
+
IS_64BIT_PROCESS = sys.maxsize > (2**32)
|
|
100
102
|
|
|
101
103
|
IS_JYTHON = pydevd_vm_type.get_vm_type() == pydevd_vm_type.PydevdVmType.JYTHON
|
|
102
104
|
|
|
103
|
-
IS_PYPY = platform.python_implementation() ==
|
|
105
|
+
IS_PYPY = platform.python_implementation() == "PyPy"
|
|
104
106
|
|
|
105
107
|
if IS_JYTHON:
|
|
106
108
|
import java.lang.System # @UnresolvedImport
|
|
109
|
+
|
|
107
110
|
IS_WINDOWS = java.lang.System.getProperty("os.name").lower().startswith("windows")
|
|
108
111
|
|
|
109
|
-
USE_CUSTOM_SYS_CURRENT_FRAMES = not hasattr(sys,
|
|
112
|
+
USE_CUSTOM_SYS_CURRENT_FRAMES = not hasattr(sys, "_current_frames") or IS_PYPY
|
|
110
113
|
USE_CUSTOM_SYS_CURRENT_FRAMES_MAP = USE_CUSTOM_SYS_CURRENT_FRAMES and (IS_PYPY or IS_IRONPYTHON)
|
|
111
114
|
|
|
112
115
|
if USE_CUSTOM_SYS_CURRENT_FRAMES:
|
|
113
|
-
|
|
114
116
|
# Some versions of Jython don't have it (but we can provide a replacement)
|
|
115
117
|
if IS_JYTHON:
|
|
116
118
|
from java.lang import NoSuchFieldException
|
|
117
119
|
from org.python.core import ThreadStateMapping
|
|
120
|
+
|
|
118
121
|
try:
|
|
119
|
-
cachedThreadState = ThreadStateMapping.getDeclaredField(
|
|
122
|
+
cachedThreadState = ThreadStateMapping.getDeclaredField("globalThreadStates") # Dev version
|
|
120
123
|
except NoSuchFieldException:
|
|
121
|
-
cachedThreadState = ThreadStateMapping.getDeclaredField(
|
|
124
|
+
cachedThreadState = ThreadStateMapping.getDeclaredField("cachedThreadState") # Release Jython 2.7.0
|
|
122
125
|
cachedThreadState.accessible = True
|
|
123
126
|
thread_states = cachedThreadState.get(ThreadStateMapping)
|
|
124
127
|
|
|
@@ -148,7 +151,7 @@ if USE_CUSTOM_SYS_CURRENT_FRAMES:
|
|
|
148
151
|
return constructed_tid_to_last_frame
|
|
149
152
|
|
|
150
153
|
else:
|
|
151
|
-
raise RuntimeError(
|
|
154
|
+
raise RuntimeError("Unable to proceed (sys._current_frames not available in this Python implementation).")
|
|
152
155
|
else:
|
|
153
156
|
_current_frames = sys._current_frames
|
|
154
157
|
|
|
@@ -156,38 +159,54 @@ IS_PYTHON_STACKLESS = "stackless" in sys.version.lower()
|
|
|
156
159
|
CYTHON_SUPPORTED = False
|
|
157
160
|
|
|
158
161
|
python_implementation = platform.python_implementation()
|
|
159
|
-
if python_implementation ==
|
|
162
|
+
if python_implementation == "CPython":
|
|
160
163
|
# Only available for CPython!
|
|
161
164
|
CYTHON_SUPPORTED = True
|
|
162
165
|
|
|
163
|
-
|
|
166
|
+
# =======================================================================================================================
|
|
164
167
|
# Python 3?
|
|
165
|
-
|
|
168
|
+
# =======================================================================================================================
|
|
166
169
|
IS_PY36_OR_GREATER = sys.version_info >= (3, 6)
|
|
167
170
|
IS_PY37_OR_GREATER = sys.version_info >= (3, 7)
|
|
168
171
|
IS_PY38_OR_GREATER = sys.version_info >= (3, 8)
|
|
169
172
|
IS_PY39_OR_GREATER = sys.version_info >= (3, 9)
|
|
170
173
|
IS_PY310_OR_GREATER = sys.version_info >= (3, 10)
|
|
171
174
|
IS_PY311_OR_GREATER = sys.version_info >= (3, 11)
|
|
175
|
+
IS_PY312_OR_GREATER = sys.version_info >= (3, 12)
|
|
176
|
+
|
|
177
|
+
# Not currently supported in Python 3.12.
|
|
178
|
+
SUPPORT_ATTACH_TO_PID = not IS_PY312_OR_GREATER
|
|
172
179
|
|
|
173
180
|
|
|
174
181
|
def version_str(v):
|
|
175
|
-
return
|
|
182
|
+
return ".".join((str(x) for x in v[:3])) + "".join((str(x) for x in v[3:]))
|
|
176
183
|
|
|
177
184
|
|
|
178
185
|
PY_VERSION_STR = version_str(sys.version_info)
|
|
179
186
|
try:
|
|
180
187
|
PY_IMPL_VERSION_STR = version_str(sys.implementation.version)
|
|
181
188
|
except AttributeError:
|
|
182
|
-
PY_IMPL_VERSION_STR =
|
|
189
|
+
PY_IMPL_VERSION_STR = ""
|
|
183
190
|
|
|
184
191
|
try:
|
|
185
192
|
PY_IMPL_NAME = sys.implementation.name
|
|
186
193
|
except AttributeError:
|
|
187
|
-
PY_IMPL_NAME =
|
|
188
|
-
|
|
189
|
-
ENV_TRUE_LOWER_VALUES = (
|
|
190
|
-
ENV_FALSE_LOWER_VALUES = (
|
|
194
|
+
PY_IMPL_NAME = ""
|
|
195
|
+
|
|
196
|
+
ENV_TRUE_LOWER_VALUES = ("yes", "true", "1")
|
|
197
|
+
ENV_FALSE_LOWER_VALUES = ("no", "false", "0")
|
|
198
|
+
|
|
199
|
+
PYDEVD_USE_SYS_MONITORING = IS_PY312_OR_GREATER and hasattr(sys, "monitoring")
|
|
200
|
+
if PYDEVD_USE_SYS_MONITORING: # Default gotten, let's see if it was somehow customize by the user.
|
|
201
|
+
_use_sys_monitoring_env_var = os.getenv("PYDEVD_USE_SYS_MONITORING", "").lower()
|
|
202
|
+
if _use_sys_monitoring_env_var:
|
|
203
|
+
# Check if the user specified something.
|
|
204
|
+
if _use_sys_monitoring_env_var in ENV_FALSE_LOWER_VALUES:
|
|
205
|
+
PYDEVD_USE_SYS_MONITORING = False
|
|
206
|
+
elif _use_sys_monitoring_env_var in ENV_TRUE_LOWER_VALUES:
|
|
207
|
+
PYDEVD_USE_SYS_MONITORING = True
|
|
208
|
+
else:
|
|
209
|
+
raise RuntimeError("Unrecognized value for PYDEVD_USE_SYS_MONITORING: %s" % (_use_sys_monitoring_env_var,))
|
|
191
210
|
|
|
192
211
|
|
|
193
212
|
def is_true_in_env(env_key):
|
|
@@ -198,7 +217,7 @@ def is_true_in_env(env_key):
|
|
|
198
217
|
return True
|
|
199
218
|
return False
|
|
200
219
|
else:
|
|
201
|
-
return os.getenv(env_key,
|
|
220
|
+
return os.getenv(env_key, "").lower() in ENV_TRUE_LOWER_VALUES
|
|
202
221
|
|
|
203
222
|
|
|
204
223
|
def as_float_in_env(env_key, default):
|
|
@@ -208,9 +227,7 @@ def as_float_in_env(env_key, default):
|
|
|
208
227
|
try:
|
|
209
228
|
return float(value)
|
|
210
229
|
except Exception:
|
|
211
|
-
raise RuntimeError(
|
|
212
|
-
'Error: expected the env variable: %s to be set to a float value. Found: %s' % (
|
|
213
|
-
env_key, value))
|
|
230
|
+
raise RuntimeError("Error: expected the env variable: %s to be set to a float value. Found: %s" % (env_key, value))
|
|
214
231
|
|
|
215
232
|
|
|
216
233
|
def as_int_in_env(env_key, default):
|
|
@@ -220,52 +237,52 @@ def as_int_in_env(env_key, default):
|
|
|
220
237
|
try:
|
|
221
238
|
return int(value)
|
|
222
239
|
except Exception:
|
|
223
|
-
raise RuntimeError(
|
|
224
|
-
'Error: expected the env variable: %s to be set to a int value. Found: %s' % (
|
|
225
|
-
env_key, value))
|
|
240
|
+
raise RuntimeError("Error: expected the env variable: %s to be set to a int value. Found: %s" % (env_key, value))
|
|
226
241
|
|
|
227
242
|
|
|
228
243
|
# If true in env, use gevent mode.
|
|
229
|
-
SUPPORT_GEVENT = is_true_in_env(
|
|
244
|
+
SUPPORT_GEVENT = is_true_in_env("GEVENT_SUPPORT")
|
|
230
245
|
|
|
231
246
|
# Opt-in support to show gevent paused greenlets. False by default because if too many greenlets are
|
|
232
247
|
# paused the UI can slow-down (i.e.: if 1000 greenlets are paused, each one would be shown separate
|
|
233
248
|
# as a different thread, but if the UI isn't optimized for that the experience is lacking...).
|
|
234
|
-
GEVENT_SHOW_PAUSED_GREENLETS = is_true_in_env(
|
|
249
|
+
GEVENT_SHOW_PAUSED_GREENLETS = is_true_in_env("GEVENT_SHOW_PAUSED_GREENLETS")
|
|
235
250
|
|
|
236
|
-
DISABLE_FILE_VALIDATION = is_true_in_env(
|
|
251
|
+
DISABLE_FILE_VALIDATION = is_true_in_env("PYDEVD_DISABLE_FILE_VALIDATION")
|
|
237
252
|
|
|
238
253
|
GEVENT_SUPPORT_NOT_SET_MSG = os.getenv(
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
254
|
+
"GEVENT_SUPPORT_NOT_SET_MSG",
|
|
255
|
+
"It seems that the gevent monkey-patching is being used.\n"
|
|
256
|
+
"Please set an environment variable with:\n"
|
|
257
|
+
"GEVENT_SUPPORT=True\n"
|
|
258
|
+
"to enable gevent support in the debugger.",
|
|
244
259
|
)
|
|
245
260
|
|
|
246
261
|
USE_LIB_COPY = SUPPORT_GEVENT
|
|
247
262
|
|
|
248
|
-
INTERACTIVE_MODE_AVAILABLE = sys.platform in (
|
|
263
|
+
INTERACTIVE_MODE_AVAILABLE = sys.platform in ("darwin", "win32") or os.getenv("DISPLAY") is not None
|
|
249
264
|
|
|
250
265
|
# If true in env, forces cython to be used (raises error if not available).
|
|
251
266
|
# If false in env, disables it.
|
|
252
267
|
# If not specified, uses default heuristic to determine if it should be loaded.
|
|
253
|
-
USE_CYTHON_FLAG = os.getenv(
|
|
268
|
+
USE_CYTHON_FLAG = os.getenv("PYDEVD_USE_CYTHON")
|
|
254
269
|
|
|
255
270
|
if USE_CYTHON_FLAG is not None:
|
|
256
271
|
USE_CYTHON_FLAG = USE_CYTHON_FLAG.lower()
|
|
257
272
|
if USE_CYTHON_FLAG not in ENV_TRUE_LOWER_VALUES and USE_CYTHON_FLAG not in ENV_FALSE_LOWER_VALUES:
|
|
258
|
-
raise RuntimeError(
|
|
259
|
-
|
|
273
|
+
raise RuntimeError(
|
|
274
|
+
"Unexpected value for PYDEVD_USE_CYTHON: %s (enable with one of: %s, disable with one of: %s)"
|
|
275
|
+
% (USE_CYTHON_FLAG, ENV_TRUE_LOWER_VALUES, ENV_FALSE_LOWER_VALUES)
|
|
276
|
+
)
|
|
260
277
|
|
|
261
278
|
else:
|
|
262
279
|
if not CYTHON_SUPPORTED:
|
|
263
|
-
USE_CYTHON_FLAG =
|
|
280
|
+
USE_CYTHON_FLAG = "no"
|
|
264
281
|
|
|
265
282
|
# If true in env, forces frame eval to be used (raises error if not available).
|
|
266
283
|
# If false in env, disables it.
|
|
267
284
|
# If not specified, uses default heuristic to determine if it should be loaded.
|
|
268
|
-
PYDEVD_USE_FRAME_EVAL = os.getenv(
|
|
285
|
+
PYDEVD_USE_FRAME_EVAL = os.getenv("PYDEVD_USE_FRAME_EVAL", "").lower()
|
|
269
286
|
|
|
270
287
|
# Values used to determine how much container items will be shown.
|
|
271
288
|
# PYDEVD_CONTAINER_INITIAL_EXPANDED_ITEMS:
|
|
@@ -281,48 +298,48 @@ PYDEVD_USE_FRAME_EVAL = os.getenv('PYDEVD_USE_FRAME_EVAL', '').lower()
|
|
|
281
298
|
# PYDEVD_CONTAINER_RANDOM_ACCESS_MAX_ITEMS
|
|
282
299
|
# - Defines the maximum number of items for dicts and sets.
|
|
283
300
|
#
|
|
284
|
-
PYDEVD_CONTAINER_INITIAL_EXPANDED_ITEMS = as_int_in_env(
|
|
285
|
-
PYDEVD_CONTAINER_BUCKET_SIZE = as_int_in_env(
|
|
286
|
-
PYDEVD_CONTAINER_RANDOM_ACCESS_MAX_ITEMS = as_int_in_env(
|
|
287
|
-
PYDEVD_CONTAINER_NUMPY_MAX_ITEMS = as_int_in_env(
|
|
301
|
+
PYDEVD_CONTAINER_INITIAL_EXPANDED_ITEMS = as_int_in_env("PYDEVD_CONTAINER_INITIAL_EXPANDED_ITEMS", 100)
|
|
302
|
+
PYDEVD_CONTAINER_BUCKET_SIZE = as_int_in_env("PYDEVD_CONTAINER_BUCKET_SIZE", 1000)
|
|
303
|
+
PYDEVD_CONTAINER_RANDOM_ACCESS_MAX_ITEMS = as_int_in_env("PYDEVD_CONTAINER_RANDOM_ACCESS_MAX_ITEMS", 500)
|
|
304
|
+
PYDEVD_CONTAINER_NUMPY_MAX_ITEMS = as_int_in_env("PYDEVD_CONTAINER_NUMPY_MAX_ITEMS", 500)
|
|
288
305
|
|
|
289
|
-
PYDEVD_IPYTHON_COMPATIBLE_DEBUGGING = is_true_in_env(
|
|
306
|
+
PYDEVD_IPYTHON_COMPATIBLE_DEBUGGING = is_true_in_env("PYDEVD_IPYTHON_COMPATIBLE_DEBUGGING")
|
|
290
307
|
|
|
291
308
|
# If specified in PYDEVD_IPYTHON_CONTEXT it must be a string with the basename
|
|
292
309
|
# and then the name of 2 methods in which the evaluate is done.
|
|
293
|
-
PYDEVD_IPYTHON_CONTEXT = (
|
|
294
|
-
_ipython_ctx = os.getenv(
|
|
310
|
+
PYDEVD_IPYTHON_CONTEXT = ("interactiveshell.py", "run_code", "run_ast_nodes")
|
|
311
|
+
_ipython_ctx = os.getenv("PYDEVD_IPYTHON_CONTEXT")
|
|
295
312
|
if _ipython_ctx:
|
|
296
|
-
PYDEVD_IPYTHON_CONTEXT = tuple(x.strip() for x in _ipython_ctx.split(
|
|
297
|
-
assert len(PYDEVD_IPYTHON_CONTEXT) == 3,
|
|
313
|
+
PYDEVD_IPYTHON_CONTEXT = tuple(x.strip() for x in _ipython_ctx.split(","))
|
|
314
|
+
assert len(PYDEVD_IPYTHON_CONTEXT) == 3, "Invalid PYDEVD_IPYTHON_CONTEXT: %s" % (_ipython_ctx,)
|
|
298
315
|
|
|
299
316
|
# Use to disable loading the lib to set tracing to all threads (default is using heuristics based on where we're running).
|
|
300
|
-
LOAD_NATIVE_LIB_FLAG = os.getenv(
|
|
317
|
+
LOAD_NATIVE_LIB_FLAG = os.getenv("PYDEVD_LOAD_NATIVE_LIB", "").lower()
|
|
301
318
|
|
|
302
|
-
LOG_TIME = os.getenv(
|
|
319
|
+
LOG_TIME = os.getenv("PYDEVD_LOG_TIME", "true").lower() in ENV_TRUE_LOWER_VALUES
|
|
303
320
|
|
|
304
|
-
SHOW_COMPILE_CYTHON_COMMAND_LINE = is_true_in_env(
|
|
321
|
+
SHOW_COMPILE_CYTHON_COMMAND_LINE = is_true_in_env("PYDEVD_SHOW_COMPILE_CYTHON_COMMAND_LINE")
|
|
305
322
|
|
|
306
|
-
LOAD_VALUES_ASYNC = is_true_in_env(
|
|
323
|
+
LOAD_VALUES_ASYNC = is_true_in_env("PYDEVD_LOAD_VALUES_ASYNC")
|
|
307
324
|
DEFAULT_VALUE = "__pydevd_value_async"
|
|
308
325
|
ASYNC_EVAL_TIMEOUT_SEC = 60
|
|
309
326
|
NEXT_VALUE_SEPARATOR = "__pydev_val__"
|
|
310
|
-
BUILTINS_MODULE_NAME =
|
|
327
|
+
BUILTINS_MODULE_NAME = "builtins"
|
|
311
328
|
|
|
312
329
|
# Pandas customization.
|
|
313
|
-
PANDAS_MAX_ROWS = as_int_in_env(
|
|
314
|
-
PANDAS_MAX_COLS = as_int_in_env(
|
|
315
|
-
PANDAS_MAX_COLWIDTH = as_int_in_env(
|
|
330
|
+
PANDAS_MAX_ROWS = as_int_in_env("PYDEVD_PANDAS_MAX_ROWS", 60)
|
|
331
|
+
PANDAS_MAX_COLS = as_int_in_env("PYDEVD_PANDAS_MAX_COLS", 10)
|
|
332
|
+
PANDAS_MAX_COLWIDTH = as_int_in_env("PYDEVD_PANDAS_MAX_COLWIDTH", 50)
|
|
316
333
|
|
|
317
334
|
# If getting an attribute or computing some value is too slow, let the user know if the given timeout elapses.
|
|
318
|
-
PYDEVD_WARN_SLOW_RESOLVE_TIMEOUT = as_float_in_env(
|
|
335
|
+
PYDEVD_WARN_SLOW_RESOLVE_TIMEOUT = as_float_in_env("PYDEVD_WARN_SLOW_RESOLVE_TIMEOUT", 0.50)
|
|
319
336
|
|
|
320
337
|
# This timeout is used to track the time to send a message saying that the evaluation
|
|
321
338
|
# is taking too long and possible mitigations.
|
|
322
|
-
PYDEVD_WARN_EVALUATION_TIMEOUT = as_float_in_env(
|
|
339
|
+
PYDEVD_WARN_EVALUATION_TIMEOUT = as_float_in_env("PYDEVD_WARN_EVALUATION_TIMEOUT", 3.0)
|
|
323
340
|
|
|
324
341
|
# If True in env shows a thread dump when the evaluation times out.
|
|
325
|
-
PYDEVD_THREAD_DUMP_ON_WARN_EVALUATION_TIMEOUT = is_true_in_env(
|
|
342
|
+
PYDEVD_THREAD_DUMP_ON_WARN_EVALUATION_TIMEOUT = is_true_in_env("PYDEVD_THREAD_DUMP_ON_WARN_EVALUATION_TIMEOUT")
|
|
326
343
|
|
|
327
344
|
# This timeout is used only when the mode that all threads are stopped/resumed at once is used
|
|
328
345
|
# (i.e.: multi_threads_single_notification)
|
|
@@ -334,29 +351,31 @@ PYDEVD_THREAD_DUMP_ON_WARN_EVALUATION_TIMEOUT = is_true_in_env('PYDEVD_THREAD_DU
|
|
|
334
351
|
# (without any notification) when the evaluation is started and pause all threads when the
|
|
335
352
|
# evaluation is finished. A positive value will run run all threads after the timeout
|
|
336
353
|
# elapses.
|
|
337
|
-
PYDEVD_UNBLOCK_THREADS_TIMEOUT = as_float_in_env(
|
|
354
|
+
PYDEVD_UNBLOCK_THREADS_TIMEOUT = as_float_in_env("PYDEVD_UNBLOCK_THREADS_TIMEOUT", -1.0)
|
|
338
355
|
|
|
339
356
|
# Timeout to interrupt a thread (so, if some evaluation doesn't finish until this
|
|
340
357
|
# timeout, the thread doing the evaluation is interrupted).
|
|
341
358
|
# A value <= 0 means this is disabled.
|
|
342
359
|
# See: _pydevd_bundle.pydevd_timeout.create_interrupt_this_thread_callback for details
|
|
343
360
|
# on how the thread interruption works (there are some caveats related to it).
|
|
344
|
-
PYDEVD_INTERRUPT_THREAD_TIMEOUT = as_float_in_env(
|
|
361
|
+
PYDEVD_INTERRUPT_THREAD_TIMEOUT = as_float_in_env("PYDEVD_INTERRUPT_THREAD_TIMEOUT", -1)
|
|
345
362
|
|
|
346
363
|
# If PYDEVD_APPLY_PATCHING_TO_HIDE_PYDEVD_THREADS is set to False, the patching to hide pydevd threads won't be applied.
|
|
347
|
-
PYDEVD_APPLY_PATCHING_TO_HIDE_PYDEVD_THREADS =
|
|
364
|
+
PYDEVD_APPLY_PATCHING_TO_HIDE_PYDEVD_THREADS = (
|
|
365
|
+
os.getenv("PYDEVD_APPLY_PATCHING_TO_HIDE_PYDEVD_THREADS", "true").lower() in ENV_TRUE_LOWER_VALUES
|
|
366
|
+
)
|
|
348
367
|
|
|
349
|
-
EXCEPTION_TYPE_UNHANDLED =
|
|
350
|
-
EXCEPTION_TYPE_USER_UNHANDLED =
|
|
351
|
-
EXCEPTION_TYPE_HANDLED =
|
|
368
|
+
EXCEPTION_TYPE_UNHANDLED = "UNHANDLED"
|
|
369
|
+
EXCEPTION_TYPE_USER_UNHANDLED = "USER_UNHANDLED"
|
|
370
|
+
EXCEPTION_TYPE_HANDLED = "HANDLED"
|
|
352
371
|
|
|
353
|
-
SHOW_DEBUG_INFO_ENV = is_true_in_env((
|
|
372
|
+
SHOW_DEBUG_INFO_ENV = is_true_in_env(("PYCHARM_DEBUG", "PYDEV_DEBUG", "PYDEVD_DEBUG"))
|
|
354
373
|
|
|
355
374
|
if SHOW_DEBUG_INFO_ENV:
|
|
356
375
|
# show debug info before the debugger start
|
|
357
376
|
DebugInfoHolder.DEBUG_TRACE_LEVEL = 3
|
|
358
377
|
|
|
359
|
-
DebugInfoHolder.PYDEVD_DEBUG_FILE = os.getenv(
|
|
378
|
+
DebugInfoHolder.PYDEVD_DEBUG_FILE = os.getenv("PYDEVD_DEBUG_FILE")
|
|
360
379
|
|
|
361
380
|
|
|
362
381
|
def protect_libraries_from_patching():
|
|
@@ -365,9 +384,23 @@ def protect_libraries_from_patching():
|
|
|
365
384
|
`_pydev_saved_modules` in order to save their original copies there. After that we can use these
|
|
366
385
|
saved modules within the debugger to protect them from patching by external libraries (e.g. gevent).
|
|
367
386
|
"""
|
|
368
|
-
patched = [
|
|
369
|
-
|
|
370
|
-
|
|
387
|
+
patched = [
|
|
388
|
+
"threading",
|
|
389
|
+
"thread",
|
|
390
|
+
"_thread",
|
|
391
|
+
"time",
|
|
392
|
+
"socket",
|
|
393
|
+
"queue",
|
|
394
|
+
"select",
|
|
395
|
+
"xmlrpclib",
|
|
396
|
+
"SimpleXMLRPCServer",
|
|
397
|
+
"BaseHTTPServer",
|
|
398
|
+
"SocketServer",
|
|
399
|
+
"xmlrpc.client",
|
|
400
|
+
"xmlrpc.server",
|
|
401
|
+
"http.server",
|
|
402
|
+
"socketserver",
|
|
403
|
+
]
|
|
371
404
|
|
|
372
405
|
for name in patched:
|
|
373
406
|
try:
|
|
@@ -375,8 +408,7 @@ def protect_libraries_from_patching():
|
|
|
375
408
|
except:
|
|
376
409
|
pass
|
|
377
410
|
|
|
378
|
-
patched_modules = dict([(k, v) for k, v in sys.modules.items()
|
|
379
|
-
if k in patched])
|
|
411
|
+
patched_modules = dict([(k, v) for k, v in sys.modules.items() if k in patched])
|
|
380
412
|
|
|
381
413
|
for name in patched_modules:
|
|
382
414
|
del sys.modules[name]
|
|
@@ -406,7 +438,7 @@ if IS_JYTHON:
|
|
|
406
438
|
else:
|
|
407
439
|
|
|
408
440
|
class ForkSafeLock(object):
|
|
409
|
-
|
|
441
|
+
"""
|
|
410
442
|
A lock which is fork-safe (when a fork is done, `pydevd_constants.after_fork()`
|
|
411
443
|
should be called to reset the locks in the new process to avoid deadlocks
|
|
412
444
|
from a lock which was locked during the fork).
|
|
@@ -429,7 +461,7 @@ else:
|
|
|
429
461
|
`ForkSafeLock.release` instead of the context manager (as acquire/release are
|
|
430
462
|
bound to the original implementation, whereas __enter__/__exit__ is not due to Python
|
|
431
463
|
limitations).
|
|
432
|
-
|
|
464
|
+
"""
|
|
433
465
|
|
|
434
466
|
def __init__(self, rlock=False):
|
|
435
467
|
self._rlock = rlock
|
|
@@ -454,9 +486,9 @@ else:
|
|
|
454
486
|
|
|
455
487
|
|
|
456
488
|
def after_fork():
|
|
457
|
-
|
|
489
|
+
"""
|
|
458
490
|
Must be called after a fork operation (will reset the ForkSafeLock).
|
|
459
|
-
|
|
491
|
+
"""
|
|
460
492
|
global _fork_safe_locks
|
|
461
493
|
locks = _fork_safe_locks[:]
|
|
462
494
|
_fork_safe_locks = []
|
|
@@ -483,7 +515,6 @@ def filter_all_warnings():
|
|
|
483
515
|
|
|
484
516
|
|
|
485
517
|
def silence_warnings_decorator(func):
|
|
486
|
-
|
|
487
518
|
@functools.wraps(func)
|
|
488
519
|
def new_func(*args, **kwargs):
|
|
489
520
|
with filter_all_warnings():
|
|
@@ -493,8 +524,8 @@ def silence_warnings_decorator(func):
|
|
|
493
524
|
|
|
494
525
|
|
|
495
526
|
def sorted_dict_repr(d):
|
|
496
|
-
s = sorted(d.items(), key=lambda x:str(x[0]))
|
|
497
|
-
return
|
|
527
|
+
s = sorted(d.items(), key=lambda x: str(x[0]))
|
|
528
|
+
return "{" + ", ".join(("%r: %r" % x) for x in s) + "}"
|
|
498
529
|
|
|
499
530
|
|
|
500
531
|
def iter_chars(b):
|
|
@@ -502,11 +533,11 @@ def iter_chars(b):
|
|
|
502
533
|
# changed that behavior so that when iterating bytes we actually get ints!
|
|
503
534
|
if isinstance(b, bytes):
|
|
504
535
|
# i.e.: do something as struct.unpack('3c', b)
|
|
505
|
-
return iter(struct.unpack(str(len(b)) +
|
|
536
|
+
return iter(struct.unpack(str(len(b)) + "c", b))
|
|
506
537
|
return iter(b)
|
|
507
538
|
|
|
508
539
|
|
|
509
|
-
if IS_JYTHON:
|
|
540
|
+
if IS_JYTHON or PYDEVD_USE_SYS_MONITORING:
|
|
510
541
|
|
|
511
542
|
def NO_FTRACE(frame, event, arg):
|
|
512
543
|
return None
|
|
@@ -522,9 +553,9 @@ else:
|
|
|
522
553
|
sys.settrace(_temp_trace)
|
|
523
554
|
|
|
524
555
|
def _check_ftrace_set_none():
|
|
525
|
-
|
|
556
|
+
"""
|
|
526
557
|
Will throw an error when executing a line event
|
|
527
|
-
|
|
558
|
+
"""
|
|
528
559
|
sys._getframe().f_trace = None
|
|
529
560
|
_line_event = 1
|
|
530
561
|
_line_event = 2
|
|
@@ -552,9 +583,9 @@ else:
|
|
|
552
583
|
sys.settrace(_curr_trace)
|
|
553
584
|
|
|
554
585
|
|
|
555
|
-
|
|
586
|
+
# =======================================================================================================================
|
|
556
587
|
# get_pid
|
|
557
|
-
|
|
588
|
+
# =======================================================================================================================
|
|
558
589
|
def get_pid():
|
|
559
590
|
try:
|
|
560
591
|
return os.getpid()
|
|
@@ -562,17 +593,18 @@ def get_pid():
|
|
|
562
593
|
try:
|
|
563
594
|
# Jython does not have it!
|
|
564
595
|
import java.lang.management.ManagementFactory # @UnresolvedImport -- just for jython
|
|
596
|
+
|
|
565
597
|
pid = java.lang.management.ManagementFactory.getRuntimeMXBean().getName()
|
|
566
|
-
return pid.replace(
|
|
598
|
+
return pid.replace("@", "_")
|
|
567
599
|
except:
|
|
568
600
|
# ok, no pid available (will be unable to debug multiple processes)
|
|
569
|
-
return
|
|
601
|
+
return "000001"
|
|
570
602
|
|
|
571
603
|
|
|
572
604
|
def clear_cached_thread_id(thread):
|
|
573
605
|
with _thread_id_lock:
|
|
574
606
|
try:
|
|
575
|
-
if thread.__pydevd_id__ !=
|
|
607
|
+
if thread.__pydevd_id__ != "console_main":
|
|
576
608
|
# The console_main is a special thread id used in the console and its id should never be reset
|
|
577
609
|
# (otherwise we may no longer be able to get its variables -- see: https://www.brainwy.com/tracker/PyDev/776).
|
|
578
610
|
del thread.__pydevd_id__
|
|
@@ -587,7 +619,7 @@ _thread_id_to_thread_found = {}
|
|
|
587
619
|
def _get_or_compute_thread_id_with_lock(thread, is_current_thread):
|
|
588
620
|
with _thread_id_lock:
|
|
589
621
|
# We do a new check with the lock in place just to be sure that nothing changed
|
|
590
|
-
tid = getattr(thread,
|
|
622
|
+
tid = getattr(thread, "__pydevd_id__", None)
|
|
591
623
|
if tid is not None:
|
|
592
624
|
return tid
|
|
593
625
|
|
|
@@ -596,7 +628,7 @@ def _get_or_compute_thread_id_with_lock(thread, is_current_thread):
|
|
|
596
628
|
# Note: don't use thread.ident because a new thread may have the
|
|
597
629
|
# same id from an old thread.
|
|
598
630
|
pid = get_pid()
|
|
599
|
-
tid =
|
|
631
|
+
tid = "pid_%s_id_%s" % (pid, id(thread))
|
|
600
632
|
|
|
601
633
|
thread.__pydevd_id__ = tid
|
|
602
634
|
|
|
@@ -604,11 +636,11 @@ def _get_or_compute_thread_id_with_lock(thread, is_current_thread):
|
|
|
604
636
|
|
|
605
637
|
|
|
606
638
|
def get_current_thread_id(thread):
|
|
607
|
-
|
|
639
|
+
"""
|
|
608
640
|
Note: the difference from get_current_thread_id to get_thread_id is that
|
|
609
641
|
for the current thread we can get the thread id while the thread.ident
|
|
610
642
|
is still not set in the Thread instance.
|
|
611
|
-
|
|
643
|
+
"""
|
|
612
644
|
try:
|
|
613
645
|
# Fast path without getting lock.
|
|
614
646
|
tid = thread.__pydevd_id__
|
|
@@ -643,9 +675,9 @@ def set_thread_id(thread, thread_id):
|
|
|
643
675
|
thread.__pydevd_id__ = thread_id
|
|
644
676
|
|
|
645
677
|
|
|
646
|
-
|
|
678
|
+
# =======================================================================================================================
|
|
647
679
|
# Null
|
|
648
|
-
|
|
680
|
+
# =======================================================================================================================
|
|
649
681
|
class Null:
|
|
650
682
|
"""
|
|
651
683
|
Gotten from: http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/68205
|
|
@@ -664,7 +696,7 @@ class Null:
|
|
|
664
696
|
return self
|
|
665
697
|
|
|
666
698
|
def __getattr__(self, mname):
|
|
667
|
-
if len(mname) > 4 and mname[:2] ==
|
|
699
|
+
if len(mname) > 4 and mname[:2] == "__" and mname[-2:] == "__":
|
|
668
700
|
# Don't pretend to implement special method names.
|
|
669
701
|
raise AttributeError(mname)
|
|
670
702
|
return self
|
|
@@ -705,7 +737,6 @@ NULL = Null()
|
|
|
705
737
|
|
|
706
738
|
|
|
707
739
|
class KeyifyList(object):
|
|
708
|
-
|
|
709
740
|
def __init__(self, inner, key):
|
|
710
741
|
self.inner = inner
|
|
711
742
|
self.key = key
|
|
@@ -718,7 +749,7 @@ class KeyifyList(object):
|
|
|
718
749
|
|
|
719
750
|
|
|
720
751
|
def call_only_once(func):
|
|
721
|
-
|
|
752
|
+
"""
|
|
722
753
|
To be used as a decorator
|
|
723
754
|
|
|
724
755
|
@call_only_once
|
|
@@ -728,7 +759,7 @@ def call_only_once(func):
|
|
|
728
759
|
Actually, in PyDev it must be called as:
|
|
729
760
|
|
|
730
761
|
func = call_only_once(func) to support older versions of Python.
|
|
731
|
-
|
|
762
|
+
"""
|
|
732
763
|
|
|
733
764
|
def new_func(*args, **kwargs):
|
|
734
765
|
if not new_func._called:
|
|
@@ -741,26 +772,26 @@ def call_only_once(func):
|
|
|
741
772
|
|
|
742
773
|
# Protocol where each line is a new message (text is quoted to prevent new lines).
|
|
743
774
|
# payload is xml
|
|
744
|
-
QUOTED_LINE_PROTOCOL =
|
|
745
|
-
ARGUMENT_QUOTED_LINE_PROTOCOL =
|
|
775
|
+
QUOTED_LINE_PROTOCOL = "quoted-line"
|
|
776
|
+
ARGUMENT_QUOTED_LINE_PROTOCOL = "protocol-quoted-line"
|
|
746
777
|
|
|
747
778
|
# Uses http protocol to provide a new message.
|
|
748
779
|
# i.e.: Content-Length:xxx\r\n\r\npayload
|
|
749
780
|
# payload is xml
|
|
750
|
-
HTTP_PROTOCOL =
|
|
751
|
-
ARGUMENT_HTTP_PROTOCOL =
|
|
781
|
+
HTTP_PROTOCOL = "http"
|
|
782
|
+
ARGUMENT_HTTP_PROTOCOL = "protocol-http"
|
|
752
783
|
|
|
753
784
|
# Message is sent without any header.
|
|
754
785
|
# payload is json
|
|
755
|
-
JSON_PROTOCOL =
|
|
756
|
-
ARGUMENT_JSON_PROTOCOL =
|
|
786
|
+
JSON_PROTOCOL = "json"
|
|
787
|
+
ARGUMENT_JSON_PROTOCOL = "json-dap"
|
|
757
788
|
|
|
758
789
|
# Same header as the HTTP_PROTOCOL
|
|
759
790
|
# payload is json
|
|
760
|
-
HTTP_JSON_PROTOCOL =
|
|
761
|
-
ARGUMENT_HTTP_JSON_PROTOCOL =
|
|
791
|
+
HTTP_JSON_PROTOCOL = "http_json"
|
|
792
|
+
ARGUMENT_HTTP_JSON_PROTOCOL = "json-dap-http"
|
|
762
793
|
|
|
763
|
-
ARGUMENT_PPID =
|
|
794
|
+
ARGUMENT_PPID = "ppid"
|
|
764
795
|
|
|
765
796
|
|
|
766
797
|
class _GlobalSettings:
|
|
@@ -769,8 +800,7 @@ class _GlobalSettings:
|
|
|
769
800
|
|
|
770
801
|
def set_protocol(protocol):
|
|
771
802
|
expected = (HTTP_PROTOCOL, QUOTED_LINE_PROTOCOL, JSON_PROTOCOL, HTTP_JSON_PROTOCOL)
|
|
772
|
-
assert protocol in expected,
|
|
773
|
-
protocol, expected)
|
|
803
|
+
assert protocol in expected, "Protocol (%s) should be one of: %s" % (protocol, expected)
|
|
774
804
|
|
|
775
805
|
_GlobalSettings.protocol = protocol
|
|
776
806
|
|
|
@@ -784,9 +814,10 @@ def is_json_protocol():
|
|
|
784
814
|
|
|
785
815
|
|
|
786
816
|
class GlobalDebuggerHolder:
|
|
787
|
-
|
|
788
|
-
|
|
789
|
-
|
|
817
|
+
"""
|
|
818
|
+
Holder for the global debugger.
|
|
819
|
+
"""
|
|
820
|
+
|
|
790
821
|
global_dbg = None # Note: don't rename (the name is used in our attach to process)
|
|
791
822
|
|
|
792
823
|
|
|
@@ -801,7 +832,6 @@ def set_global_debugger(dbg):
|
|
|
801
832
|
GlobalDebuggerHolder.global_dbg = dbg
|
|
802
833
|
|
|
803
834
|
|
|
804
|
-
if __name__ ==
|
|
835
|
+
if __name__ == "__main__":
|
|
805
836
|
if Null():
|
|
806
|
-
sys.stdout.write(
|
|
807
|
-
|
|
837
|
+
sys.stdout.write("here\n")
|