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