debugpy 1.8.3__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.3/src/debugpy.egg-info → debugpy-1.8.6}/PKG-INFO +1 -1
- {debugpy-1.8.3 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydev_bundle/_pydev_calltip_util.py +19 -21
- {debugpy-1.8.3 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydev_bundle/_pydev_completer.py +30 -30
- {debugpy-1.8.3 → 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.3 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydev_bundle/_pydev_getopt.py +35 -32
- {debugpy-1.8.3 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydev_bundle/_pydev_imports_tipper.py +83 -84
- {debugpy-1.8.3 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydev_bundle/_pydev_jy_imports_tipper.py +92 -99
- {debugpy-1.8.3 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydev_bundle/_pydev_log.py +2 -3
- {debugpy-1.8.3 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydev_bundle/_pydev_saved_modules.py +51 -27
- {debugpy-1.8.3 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydev_bundle/_pydev_sys_patch.py +11 -7
- {debugpy-1.8.3 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydev_bundle/_pydev_tipper_common.py +6 -5
- {debugpy-1.8.3 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydev_bundle/fsnotify/__init__.py +34 -38
- {debugpy-1.8.3 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydev_bundle/pydev_console_utils.py +71 -69
- {debugpy-1.8.3 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydev_bundle/pydev_import_hook.py +1 -3
- {debugpy-1.8.3 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydev_bundle/pydev_imports.py +0 -1
- {debugpy-1.8.3 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydev_bundle/pydev_ipython_console.py +14 -16
- {debugpy-1.8.3 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydev_bundle/pydev_ipython_console_011.py +81 -93
- {debugpy-1.8.3 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydev_bundle/pydev_is_thread_alive.py +3 -3
- {debugpy-1.8.3 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydev_bundle/pydev_localhost.py +9 -8
- {debugpy-1.8.3 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydev_bundle/pydev_log.py +33 -25
- {debugpy-1.8.3 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydev_bundle/pydev_monkey.py +183 -170
- {debugpy-1.8.3 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydev_bundle/pydev_monkey_qt.py +33 -29
- {debugpy-1.8.3 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydev_bundle/pydev_override.py +6 -4
- {debugpy-1.8.3 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydev_bundle/pydev_umd.py +19 -18
- {debugpy-1.8.3 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydev_bundle/pydev_versioncheck.py +3 -3
- {debugpy-1.8.3 → 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.3 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydev_runfiles/pydev_runfiles_nose.py +35 -36
- {debugpy-1.8.3 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydev_runfiles/pydev_runfiles_parallel.py +22 -23
- {debugpy-1.8.3 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydev_runfiles/pydev_runfiles_parallel_client.py +37 -57
- {debugpy-1.8.3 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydev_runfiles/pydev_runfiles_pytest2.py +54 -52
- {debugpy-1.8.3 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydev_runfiles/pydev_runfiles_unittest.py +28 -37
- {debugpy-1.8.3 → 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.3 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/_debug_adapter/debugProtocol.json +551 -445
- {debugpy-1.8.3 → 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.3 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/_debug_adapter/pydevd_schema_log.py +11 -12
- {debugpy-1.8.3 → 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.3 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_api.py +263 -214
- {debugpy-1.8.3 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_breakpoints.py +7 -10
- {debugpy-1.8.3 → 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.3 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_code_to_source.py +46 -51
- {debugpy-1.8.3 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_collect_bytecode_info.py +239 -176
- {debugpy-1.8.3 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_comm.py +370 -297
- {debugpy-1.8.3 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_comm_constants.py +78 -86
- {debugpy-1.8.3 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_command_line_handling.py +55 -59
- {debugpy-1.8.3 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_concurrency_analyser/pydevd_concurrency_logger.py +194 -58
- {debugpy-1.8.3 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_concurrency_analyser/pydevd_thread_wrappers.py +2 -3
- {debugpy-1.8.3 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_console.py +18 -23
- {debugpy-1.8.3 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_constants.py +157 -127
- {debugpy-1.8.3 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_custom_frames.py +10 -12
- {debugpy-1.8.3 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_cython.c +35217 -23106
- {debugpy-1.8.3 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_cython.pxd +15 -0
- {debugpy-1.8.3 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_cython.pyx +802 -511
- {debugpy-1.8.3 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_cython_wrapper.py +18 -7
- {debugpy-1.8.3 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_daemon_thread.py +32 -24
- {debugpy-1.8.3 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_defaults.py +11 -13
- {debugpy-1.8.3 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_dont_trace.py +16 -16
- {debugpy-1.8.3 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_dont_trace_files.py +27 -2
- {debugpy-1.8.3 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_exec2.py +1 -1
- {debugpy-1.8.3 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_extension_api.py +4 -5
- {debugpy-1.8.3 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_extension_utils.py +8 -10
- {debugpy-1.8.3 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_filtering.py +50 -45
- {debugpy-1.8.3 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_frame.py +462 -407
- {debugpy-1.8.3 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_frame_utils.py +63 -61
- {debugpy-1.8.3 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_gevent_integration.py +14 -16
- {debugpy-1.8.3 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_import_class.py +27 -25
- {debugpy-1.8.3 → 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.3 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_net_command.py +20 -19
- {debugpy-1.8.3 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_net_command_factory_json.py +199 -108
- {debugpy-1.8.3 → 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.3 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_process_net_command.py +206 -159
- {debugpy-1.8.3 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_process_net_command_json.py +346 -334
- {debugpy-1.8.3 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_referrers.py +75 -80
- {debugpy-1.8.3 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_reload.py +35 -35
- {debugpy-1.8.3 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_resolver.py +116 -124
- {debugpy-1.8.3 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_runpy.py +44 -58
- {debugpy-1.8.3 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_safe_repr.py +51 -55
- {debugpy-1.8.3 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_save_locals.py +4 -2
- {debugpy-1.8.3 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_signature.py +24 -24
- {debugpy-1.8.3 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_source_mapping.py +19 -20
- {debugpy-1.8.3 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_stackless.py +45 -49
- {debugpy-1.8.3 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_suspended_frames.py +61 -58
- {debugpy-1.8.3 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_thread_lifecycle.py +23 -13
- {debugpy-1.8.3 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_timeout.py +29 -31
- {debugpy-1.8.3 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_trace_dispatch.py +41 -11
- {debugpy-1.8.3 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_trace_dispatch_regular.py +117 -55
- {debugpy-1.8.3 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_traceproperty.py +11 -14
- {debugpy-1.8.3 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_utils.py +90 -89
- {debugpy-1.8.3 → 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.3 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_xml.py +56 -46
- {debugpy-1.8.3 → 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.3 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/pydevd_frame_evaluator.c +11165 -5326
- {debugpy-1.8.3 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/pydevd_frame_tracing.py +5 -6
- {debugpy-1.8.3 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/pydevd_modify_bytecode.py +53 -56
- {debugpy-1.8.3 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode/__init__.py +1 -0
- {debugpy-1.8.3 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode/bytecode.py +4 -6
- {debugpy-1.8.3 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode/cfg.py +6 -26
- {debugpy-1.8.3 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode/concrete.py +7 -21
- {debugpy-1.8.3 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode/flags.py +5 -24
- {debugpy-1.8.3 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode/instr.py +10 -34
- {debugpy-1.8.3 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode/peephole_opt.py +1 -4
- {debugpy-1.8.3 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode/tests/__init__.py +2 -6
- {debugpy-1.8.3 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode/tests/test_bytecode.py +3 -5
- {debugpy-1.8.3 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode/tests/test_cfg.py +11 -31
- {debugpy-1.8.3 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode/tests/test_code.py +2 -2
- {debugpy-1.8.3 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode/tests/test_concrete.py +14 -41
- {debugpy-1.8.3 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode/tests/test_flags.py +2 -4
- {debugpy-1.8.3 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode/tests/test_instr.py +7 -18
- {debugpy-1.8.3 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode/tests/test_misc.py +6 -18
- {debugpy-1.8.3 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode/tests/test_peephole_opt.py +7 -18
- {debugpy-1.8.3 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode/tests/util_annotation.py +1 -3
- {debugpy-1.8.3 → 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.3 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydev_app_engine_debug_startup.py +12 -11
- {debugpy-1.8.3 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydev_coverage.py +30 -32
- {debugpy-1.8.3 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydev_ipython/inputhook.py +58 -54
- {debugpy-1.8.3 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydev_ipython/inputhookglut.py +20 -24
- {debugpy-1.8.3 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydev_ipython/inputhookgtk.py +8 -7
- {debugpy-1.8.3 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydev_ipython/inputhookgtk3.py +8 -6
- {debugpy-1.8.3 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydev_ipython/inputhookpyglet.py +11 -8
- {debugpy-1.8.3 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydev_ipython/inputhookqt4.py +21 -18
- {debugpy-1.8.3 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydev_ipython/inputhookqt5.py +17 -15
- {debugpy-1.8.3 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydev_ipython/inputhookqt6.py +17 -15
- {debugpy-1.8.3 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydev_ipython/inputhooktk.py +6 -4
- {debugpy-1.8.3 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydev_ipython/inputhookwx.py +14 -10
- {debugpy-1.8.3 → 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.3 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydev_ipython/qt_for_kernel.py +37 -34
- {debugpy-1.8.3 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydev_ipython/qt_loaders.py +86 -73
- {debugpy-1.8.3 → 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.3 → 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.3 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevconsole.py +55 -47
- {debugpy-1.8.3 → 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.3 → 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.3 → 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.3 → 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.3 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/common/py_utils.hpp +1 -0
- {debugpy-1.8.3 → 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.3 → 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.3 → 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.3 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/__init__.py +103 -119
- {debugpy-1.8.3 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/breakpoint.py +457 -516
- {debugpy-1.8.3 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/compat.py +33 -15
- {debugpy-1.8.3 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/crash.py +336 -281
- {debugpy-1.8.3 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/debug.py +101 -131
- {debugpy-1.8.3 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/disasm.py +148 -153
- {debugpy-1.8.3 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/event.py +310 -302
- {debugpy-1.8.3 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/interactive.py +235 -208
- {debugpy-1.8.3 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/module.py +185 -218
- {debugpy-1.8.3 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/process.py +428 -564
- {debugpy-1.8.3 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/registry.py +54 -53
- {debugpy-1.8.3 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/search.py +69 -73
- {debugpy-1.8.3 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/sql.py +158 -170
- {debugpy-1.8.3 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/system.py +143 -213
- {debugpy-1.8.3 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/textio.py +302 -333
- {debugpy-1.8.3 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/thread.py +220 -239
- {debugpy-1.8.3 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/util.py +198 -177
- {debugpy-1.8.3 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/win32/__init__.py +11 -11
- {debugpy-1.8.3 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/win32/advapi32.py +1191 -713
- {debugpy-1.8.3 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/win32/context_amd64.py +248 -194
- {debugpy-1.8.3 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/win32/context_i386.py +132 -120
- {debugpy-1.8.3 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/win32/dbghelp.py +450 -346
- {debugpy-1.8.3 → 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.3 → 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.3 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/win32/psapi.py +54 -31
- {debugpy-1.8.3 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/win32/shell32.py +170 -149
- {debugpy-1.8.3 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/win32/shlwapi.py +190 -108
- {debugpy-1.8.3 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/win32/user32.py +542 -437
- {debugpy-1.8.3 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/win32/version.py +489 -442
- {debugpy-1.8.3 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/win32/wtsapi32.py +83 -65
- {debugpy-1.8.3 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/window.py +70 -76
- {debugpy-1.8.3 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/windows/attach.cpp +17 -9
- {debugpy-1.8.3 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/windows/compile_windows.bat +1 -1
- {debugpy-1.8.3 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_file_utils.py +141 -120
- {debugpy-1.8.3/src/debugpy/_vendored/pydevd/pydevd_plugins/extensions/types → debugpy-1.8.6/src/debugpy/_vendored/pydevd/pydevd_plugins}/__init__.py +1 -0
- {debugpy-1.8.3 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_plugins/django_debug.py +175 -149
- {debugpy-1.8.3/src/debugpy/_vendored/pydevd/pydevd_plugins → debugpy-1.8.6/src/debugpy/_vendored/pydevd/pydevd_plugins/extensions}/__init__.py +1 -0
- {debugpy-1.8.3/src/debugpy/_vendored/pydevd/pydevd_plugins/extensions → debugpy-1.8.6/src/debugpy/_vendored/pydevd/pydevd_plugins/extensions/types}/__init__.py +1 -0
- {debugpy-1.8.3 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_plugins/extensions/types/pydevd_helpers.py +5 -5
- {debugpy-1.8.3 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_plugins/extensions/types/pydevd_plugin_numpy_types.py +28 -28
- {debugpy-1.8.3 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_plugins/extensions/types/pydevd_plugin_pandas_types.py +22 -30
- {debugpy-1.8.3 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_plugins/extensions/types/pydevd_plugins_django_form_str.py +3 -2
- {debugpy-1.8.3 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_plugins/jinja2_debug.py +130 -108
- {debugpy-1.8.3 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_plugins/pydevd_line_validation.py +27 -14
- {debugpy-1.8.3 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_tracing.py +85 -66
- {debugpy-1.8.3 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/setup_pydevd_cython.py +96 -59
- {debugpy-1.8.3 → debugpy-1.8.6}/src/debugpy/_version.py +3 -3
- {debugpy-1.8.3 → debugpy-1.8.6}/src/debugpy/common/messaging.py +2 -1
- {debugpy-1.8.3 → debugpy-1.8.6}/src/debugpy/server/cli.py +32 -17
- {debugpy-1.8.3 → debugpy-1.8.6/src/debugpy.egg-info}/PKG-INFO +1 -1
- {debugpy-1.8.3 → debugpy-1.8.6}/src/debugpy.egg-info/SOURCES.txt +6 -9
- debugpy-1.8.3/src/debugpy/_vendored/pydevd/_pydev_bundle/_pydev_filesystem_encoding.py +0 -41
- debugpy-1.8.3/src/debugpy/_vendored/pydevd/_pydev_runfiles/pydev_runfiles_coverage.py +0 -76
- debugpy-1.8.3/src/debugpy/_vendored/pydevd/_pydevd_bundle/_debug_adapter/__main__pydevd_gen_debug_adapter_protocol.py +0 -592
- debugpy-1.8.3/src/debugpy/_vendored/pydevd/_pydevd_bundle/_debug_adapter/pydevd_schema.py +0 -19514
- debugpy-1.8.3/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_additional_thread_info.py +0 -19
- debugpy-1.8.3/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_additional_thread_info_regular.py +0 -153
- debugpy-1.8.3/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_json_debug_options.py +0 -204
- debugpy-1.8.3/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_plugin_utils.py +0 -91
- debugpy-1.8.3/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_trace_api.py +0 -62
- debugpy-1.8.3/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_vm_type.py +0 -41
- debugpy-1.8.3/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/pydevd_frame_eval_main.py +0 -48
- debugpy-1.8.3/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode-0.13.0.dev0.dist-info/COPYING +0 -21
- debugpy-1.8.3/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode-0.13.0.dev0.dist-info/INSTALLER +0 -1
- debugpy-1.8.3/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode-0.13.0.dev0.dist-info/METADATA +0 -77
- debugpy-1.8.3/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode-0.13.0.dev0.dist-info/RECORD +0 -42
- debugpy-1.8.3/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode-0.13.0.dev0.dist-info/REQUESTED +0 -0
- debugpy-1.8.3/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode-0.13.0.dev0.dist-info/WHEEL +0 -5
- debugpy-1.8.3/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode-0.13.0.dev0.dist-info/direct_url.json +0 -1
- debugpy-1.8.3/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode-0.13.0.dev0.dist-info/top_level.txt +0 -1
- debugpy-1.8.3/src/debugpy/_vendored/pydevd/pydev_ipython/qt.py +0 -23
- debugpy-1.8.3/src/debugpy/_vendored/pydevd/pydev_pysrc.py +0 -1
- debugpy-1.8.3/src/debugpy/_vendored/pydevd/pydev_sitecustomize/sitecustomize.py +0 -237
- debugpy-1.8.3/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/_always_live_program.py +0 -32
- debugpy-1.8.3/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/_test_attach_to_process.py +0 -9
- debugpy-1.8.3/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/_test_attach_to_process_linux.py +0 -74
- debugpy-1.8.3/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/attach_amd64.dll +0 -0
- debugpy-1.8.3/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/attach_amd64.pdb +0 -0
- debugpy-1.8.3/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/attach_pydevd.py +0 -79
- debugpy-1.8.3/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/attach_x86.dll +0 -0
- debugpy-1.8.3/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/attach_x86.pdb +0 -0
- debugpy-1.8.3/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/inject_dll_amd64.exe +0 -0
- debugpy-1.8.3/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/inject_dll_amd64.pdb +0 -0
- debugpy-1.8.3/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/inject_dll_x86.pdb +0 -0
- debugpy-1.8.3/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/run_code_on_dllmain_amd64.dll +0 -0
- debugpy-1.8.3/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/run_code_on_dllmain_amd64.pdb +0 -0
- debugpy-1.8.3/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/run_code_on_dllmain_x86.dll +0 -0
- debugpy-1.8.3/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/run_code_on_dllmain_x86.pdb +0 -0
- debugpy-1.8.3/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/win32/gdi32.py +0 -507
- debugpy-1.8.3/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/win32/ntdll.py +0 -539
- debugpy-1.8.3/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/win32/peb_teb.py +0 -3435
- {debugpy-1.8.3 → debugpy-1.8.6}/DESCRIPTION.md +0 -0
- {debugpy-1.8.3 → debugpy-1.8.6}/LICENSE +0 -0
- {debugpy-1.8.3 → debugpy-1.8.6}/MANIFEST.in +0 -0
- {debugpy-1.8.3 → debugpy-1.8.6}/README.md +0 -0
- {debugpy-1.8.3 → debugpy-1.8.6}/pyproject.toml +0 -0
- {debugpy-1.8.3 → debugpy-1.8.6}/setup.cfg +0 -0
- {debugpy-1.8.3 → debugpy-1.8.6}/setup.py +0 -0
- {debugpy-1.8.3 → debugpy-1.8.6}/src/debugpy/ThirdPartyNotices.txt +0 -0
- {debugpy-1.8.3 → debugpy-1.8.6}/src/debugpy/__init__.py +0 -0
- {debugpy-1.8.3 → debugpy-1.8.6}/src/debugpy/__main__.py +0 -0
- {debugpy-1.8.3 → debugpy-1.8.6}/src/debugpy/_vendored/__init__.py +0 -0
- {debugpy-1.8.3 → debugpy-1.8.6}/src/debugpy/_vendored/_pydevd_packaging.py +0 -0
- {debugpy-1.8.3 → debugpy-1.8.6}/src/debugpy/_vendored/_util.py +0 -0
- {debugpy-1.8.3 → debugpy-1.8.6}/src/debugpy/_vendored/force_pydevd.py +0 -0
- {debugpy-1.8.3 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydev_bundle/__init__.py +0 -0
- {debugpy-1.8.3 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydev_runfiles/__init__.py +0 -0
- {debugpy-1.8.3 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/__init__.py +0 -0
- {debugpy-1.8.3 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/_debug_adapter/__init__.py +0 -0
- {debugpy-1.8.3 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/_debug_adapter/debugProtocolCustom.json +0 -0
- {debugpy-1.8.3 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_concurrency_analyser/__init__.py +0 -0
- {debugpy-1.8.3 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/.gitignore +0 -0
- {debugpy-1.8.3 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/__init__.py +0 -0
- {debugpy-1.8.3 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/pydevd_frame_evaluator.pxd +0 -0
- {debugpy-1.8.3 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/pydevd_frame_evaluator.pyx +0 -0
- {debugpy-1.8.3 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/pydevd_frame_evaluator.template.pyx +0 -0
- {debugpy-1.8.3 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/release_mem.h +0 -0
- {debugpy-1.8.3 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/README.txt +0 -0
- {debugpy-1.8.3 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/__init__.py +0 -0
- {debugpy-1.8.3 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydev_ipython/README +0 -0
- {debugpy-1.8.3 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydev_ipython/__init__.py +0 -0
- {debugpy-1.8.3 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydev_sitecustomize/__not_in_default_pythonpath.txt +0 -0
- {debugpy-1.8.3 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/README.txt +0 -0
- {debugpy-1.8.3 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/common/py_custom_pyeval_settrace.hpp +0 -0
- {debugpy-1.8.3 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/common/py_custom_pyeval_settrace_310.hpp +0 -0
- {debugpy-1.8.3 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/common/py_custom_pyeval_settrace_311.hpp +0 -0
- {debugpy-1.8.3 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/common/py_custom_pyeval_settrace_common.hpp +0 -0
- {debugpy-1.8.3 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/common/py_settrace.hpp +0 -0
- {debugpy-1.8.3 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/common/python.h +0 -0
- {debugpy-1.8.3 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/common/ref_utils.hpp +0 -0
- {debugpy-1.8.3 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/linux_and_mac/.gitignore +0 -0
- {debugpy-1.8.3 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/linux_and_mac/attach.cpp +0 -0
- {debugpy-1.8.3 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/linux_and_mac/compile_linux.sh +0 -0
- {debugpy-1.8.3 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/linux_and_mac/compile_mac.sh +0 -0
- {debugpy-1.8.3 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/linux_and_mac/compile_manylinux.cmd +0 -0
- {debugpy-1.8.3 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/windows/attach.h +0 -0
- {debugpy-1.8.3 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/windows/inject_dll.cpp +0 -0
- {debugpy-1.8.3 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/windows/py_win_helpers.hpp +0 -0
- {debugpy-1.8.3 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/windows/run_code_in_memory.hpp +0 -0
- {debugpy-1.8.3 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/windows/run_code_on_dllmain.cpp +0 -0
- {debugpy-1.8.3 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/windows/stdafx.cpp +0 -0
- {debugpy-1.8.3 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/windows/stdafx.h +0 -0
- {debugpy-1.8.3 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/windows/targetver.h +0 -0
- {debugpy-1.8.3 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_plugins/extensions/README.md +0 -0
- {debugpy-1.8.3 → debugpy-1.8.6}/src/debugpy/adapter/__init__.py +0 -0
- {debugpy-1.8.3 → debugpy-1.8.6}/src/debugpy/adapter/__main__.py +0 -0
- {debugpy-1.8.3 → debugpy-1.8.6}/src/debugpy/adapter/clients.py +0 -0
- {debugpy-1.8.3 → debugpy-1.8.6}/src/debugpy/adapter/components.py +0 -0
- {debugpy-1.8.3 → debugpy-1.8.6}/src/debugpy/adapter/launchers.py +0 -0
- {debugpy-1.8.3 → debugpy-1.8.6}/src/debugpy/adapter/servers.py +0 -0
- {debugpy-1.8.3 → debugpy-1.8.6}/src/debugpy/adapter/sessions.py +0 -0
- {debugpy-1.8.3 → debugpy-1.8.6}/src/debugpy/common/__init__.py +0 -0
- {debugpy-1.8.3 → debugpy-1.8.6}/src/debugpy/common/json.py +0 -0
- {debugpy-1.8.3 → debugpy-1.8.6}/src/debugpy/common/log.py +0 -0
- {debugpy-1.8.3 → debugpy-1.8.6}/src/debugpy/common/singleton.py +0 -0
- {debugpy-1.8.3 → debugpy-1.8.6}/src/debugpy/common/sockets.py +0 -0
- {debugpy-1.8.3 → debugpy-1.8.6}/src/debugpy/common/stacks.py +0 -0
- {debugpy-1.8.3 → debugpy-1.8.6}/src/debugpy/common/timestamp.py +0 -0
- {debugpy-1.8.3 → debugpy-1.8.6}/src/debugpy/common/util.py +0 -0
- {debugpy-1.8.3 → debugpy-1.8.6}/src/debugpy/launcher/__init__.py +0 -0
- {debugpy-1.8.3 → debugpy-1.8.6}/src/debugpy/launcher/__main__.py +0 -0
- {debugpy-1.8.3 → debugpy-1.8.6}/src/debugpy/launcher/debuggee.py +0 -0
- {debugpy-1.8.3 → debugpy-1.8.6}/src/debugpy/launcher/handlers.py +0 -0
- {debugpy-1.8.3 → debugpy-1.8.6}/src/debugpy/launcher/output.py +0 -0
- {debugpy-1.8.3 → debugpy-1.8.6}/src/debugpy/launcher/winapi.py +0 -0
- {debugpy-1.8.3 → debugpy-1.8.6}/src/debugpy/public_api.py +0 -0
- {debugpy-1.8.3 → debugpy-1.8.6}/src/debugpy/server/__init__.py +0 -0
- {debugpy-1.8.3 → debugpy-1.8.6}/src/debugpy/server/api.py +0 -0
- {debugpy-1.8.3 → debugpy-1.8.6}/src/debugpy/server/attach_pid_injected.py +0 -0
- {debugpy-1.8.3 → debugpy-1.8.6}/src/debugpy.egg-info/dependency_links.txt +0 -0
- {debugpy-1.8.3 → debugpy-1.8.6}/src/debugpy.egg-info/entry_points.txt +0 -0
- {debugpy-1.8.3 → debugpy-1.8.6}/src/debugpy.egg-info/top_level.txt +0 -0
- {debugpy-1.8.3 → debugpy-1.8.6}/versioneer.py +0 -0
|
@@ -2,8 +2,7 @@
|
|
|
2
2
|
resolution/conversion to XML.
|
|
3
3
|
"""
|
|
4
4
|
import pickle
|
|
5
|
-
from _pydevd_bundle.pydevd_constants import get_frame, get_current_thread_id,
|
|
6
|
-
iter_chars, silence_warnings_decorator, get_global_debugger
|
|
5
|
+
from _pydevd_bundle.pydevd_constants import get_frame, get_current_thread_id, iter_chars, silence_warnings_decorator, get_global_debugger
|
|
7
6
|
|
|
8
7
|
from _pydevd_bundle.pydevd_xml import ExceptionOnEvaluate, get_type, var_to_xml
|
|
9
8
|
from _pydev_bundle import pydev_log
|
|
@@ -37,13 +36,13 @@ def iter_frames(frame):
|
|
|
37
36
|
|
|
38
37
|
|
|
39
38
|
def dump_frames(thread_id):
|
|
40
|
-
sys.stdout.write(
|
|
39
|
+
sys.stdout.write("dumping frames\n")
|
|
41
40
|
if thread_id != get_current_thread_id(threading.current_thread()):
|
|
42
41
|
raise VariableError("find_frame: must execute on same thread")
|
|
43
42
|
|
|
44
43
|
frame = get_frame()
|
|
45
44
|
for frame in iter_frames(frame):
|
|
46
|
-
sys.stdout.write(
|
|
45
|
+
sys.stdout.write("%s\n" % pickle.dumps(frame))
|
|
47
46
|
|
|
48
47
|
|
|
49
48
|
@silence_warnings_decorator
|
|
@@ -61,12 +60,13 @@ def getVariable(dbg, thread_id, frame_id, scope, locator):
|
|
|
61
60
|
:note: when BY_ID is used, the frame_id is considered the id of the object to find and
|
|
62
61
|
not the frame (as we don't care about the frame in this case).
|
|
63
62
|
"""
|
|
64
|
-
if scope ==
|
|
63
|
+
if scope == "BY_ID":
|
|
65
64
|
if thread_id != get_current_thread_id(threading.current_thread()):
|
|
66
65
|
raise VariableError("getVariable: must execute on same thread")
|
|
67
66
|
|
|
68
67
|
try:
|
|
69
68
|
import gc
|
|
69
|
+
|
|
70
70
|
objects = gc.get_objects()
|
|
71
71
|
except:
|
|
72
72
|
pass # Not all python variants have it.
|
|
@@ -75,7 +75,7 @@ def getVariable(dbg, thread_id, frame_id, scope, locator):
|
|
|
75
75
|
for var in objects:
|
|
76
76
|
if id(var) == frame_id:
|
|
77
77
|
if locator is not None:
|
|
78
|
-
locator_parts = locator.split(
|
|
78
|
+
locator_parts = locator.split("\t")
|
|
79
79
|
for k in locator_parts:
|
|
80
80
|
_type, _type_name, resolver = get_type(var)
|
|
81
81
|
var = resolver.resolve(var, k)
|
|
@@ -83,7 +83,7 @@ def getVariable(dbg, thread_id, frame_id, scope, locator):
|
|
|
83
83
|
return var
|
|
84
84
|
|
|
85
85
|
# If it didn't return previously, we coudn't find it by id (i.e.: already garbage collected).
|
|
86
|
-
sys.stderr.write(
|
|
86
|
+
sys.stderr.write("Unable to find object with id: %s\n" % (frame_id,))
|
|
87
87
|
return None
|
|
88
88
|
|
|
89
89
|
frame = dbg.find_frame(thread_id, frame_id)
|
|
@@ -91,14 +91,14 @@ def getVariable(dbg, thread_id, frame_id, scope, locator):
|
|
|
91
91
|
return {}
|
|
92
92
|
|
|
93
93
|
if locator is not None:
|
|
94
|
-
locator_parts = locator.split(
|
|
94
|
+
locator_parts = locator.split("\t")
|
|
95
95
|
else:
|
|
96
96
|
locator_parts = []
|
|
97
97
|
|
|
98
98
|
for attr in locator_parts:
|
|
99
|
-
attr.replace("@_@TAB_CHAR@_@",
|
|
99
|
+
attr.replace("@_@TAB_CHAR@_@", "\t")
|
|
100
100
|
|
|
101
|
-
if scope ==
|
|
101
|
+
if scope == "EXPRESSION":
|
|
102
102
|
for count in range(len(locator_parts)):
|
|
103
103
|
if count == 0:
|
|
104
104
|
# An Expression can be in any scope (globals/locals), therefore it needs to evaluated as an expression
|
|
@@ -141,8 +141,7 @@ def resolve_compound_variable_fields(dbg, thread_id, frame_id, scope, attrs):
|
|
|
141
141
|
_type, type_name, resolver = get_type(var)
|
|
142
142
|
return type_name, resolver.get_dictionary(var)
|
|
143
143
|
except:
|
|
144
|
-
pydev_log.exception(
|
|
145
|
-
thread_id, frame_id, scope, attrs)
|
|
144
|
+
pydev_log.exception("Error evaluating: thread_id: %s\nframe_id: %s\nscope: %s\nattrs: %s.", thread_id, frame_id, scope, attrs)
|
|
146
145
|
|
|
147
146
|
|
|
148
147
|
def resolve_var_object(var, attrs):
|
|
@@ -154,7 +153,7 @@ def resolve_var_object(var, attrs):
|
|
|
154
153
|
:return: a value of resolved variable's attribute
|
|
155
154
|
"""
|
|
156
155
|
if attrs is not None:
|
|
157
|
-
attr_list = attrs.split(
|
|
156
|
+
attr_list = attrs.split("\t")
|
|
158
157
|
else:
|
|
159
158
|
attr_list = []
|
|
160
159
|
for k in attr_list:
|
|
@@ -171,7 +170,7 @@ def resolve_compound_var_object_fields(var, attrs):
|
|
|
171
170
|
:param attrs: a sequence of variable's attributes separated by \t (i.e.: obj\tattr1\tattr2)
|
|
172
171
|
:return: a dictionary of variables's fields
|
|
173
172
|
"""
|
|
174
|
-
attr_list = attrs.split(
|
|
173
|
+
attr_list = attrs.split("\t")
|
|
175
174
|
|
|
176
175
|
for k in attr_list:
|
|
177
176
|
type, _type_name, resolver = get_type(var)
|
|
@@ -194,12 +193,12 @@ def custom_operation(dbg, thread_id, frame_id, scope, attrs, style, code_or_file
|
|
|
194
193
|
expressionValue = getVariable(dbg, thread_id, frame_id, scope, attrs)
|
|
195
194
|
|
|
196
195
|
try:
|
|
197
|
-
namespace = {
|
|
196
|
+
namespace = {"__name__": "<custom_operation>"}
|
|
198
197
|
if style == "EXECFILE":
|
|
199
|
-
namespace[
|
|
198
|
+
namespace["__file__"] = code_or_file
|
|
200
199
|
execfile(code_or_file, namespace, namespace)
|
|
201
200
|
else: # style == EXEC
|
|
202
|
-
namespace[
|
|
201
|
+
namespace["__file__"] = "<customOperationCode>"
|
|
203
202
|
Exec(code_or_file, namespace, namespace)
|
|
204
203
|
|
|
205
204
|
return str(namespace[operation_fn_name](expressionValue))
|
|
@@ -238,9 +237,9 @@ def _expression_to_evaluate(expression):
|
|
|
238
237
|
|
|
239
238
|
if proceed:
|
|
240
239
|
if isinstance(expression, bytes):
|
|
241
|
-
expression = b
|
|
240
|
+
expression = b"".join(new_lines)
|
|
242
241
|
else:
|
|
243
|
-
expression =
|
|
242
|
+
expression = "".join(new_lines)
|
|
244
243
|
|
|
245
244
|
return expression
|
|
246
245
|
|
|
@@ -255,7 +254,7 @@ def eval_in_context(expression, global_vars, local_vars, py_db=None):
|
|
|
255
254
|
if py_db is None:
|
|
256
255
|
py_db = get_global_debugger()
|
|
257
256
|
if py_db is None:
|
|
258
|
-
raise RuntimeError(
|
|
257
|
+
raise RuntimeError("Cannot evaluate async without py_db.")
|
|
259
258
|
t = _EvalAwaitInNewEventLoop(py_db, compiled, global_vars, local_vars)
|
|
260
259
|
t.start()
|
|
261
260
|
t.join()
|
|
@@ -272,17 +271,17 @@ def eval_in_context(expression, global_vars, local_vars, py_db=None):
|
|
|
272
271
|
|
|
273
272
|
# Ok, we have the initial error message, but let's see if we're dealing with a name mangling error...
|
|
274
273
|
try:
|
|
275
|
-
if
|
|
274
|
+
if ".__" in expression:
|
|
276
275
|
# Try to handle '__' name mangling (for simple cases such as self.__variable.__another_var).
|
|
277
|
-
split = expression.split(
|
|
276
|
+
split = expression.split(".")
|
|
278
277
|
entry = split[0]
|
|
279
278
|
|
|
280
279
|
if local_vars is None:
|
|
281
280
|
local_vars = global_vars
|
|
282
281
|
curr = local_vars[entry] # Note: we want the KeyError if it's not there.
|
|
283
282
|
for entry in split[1:]:
|
|
284
|
-
if entry.startswith(
|
|
285
|
-
entry =
|
|
283
|
+
if entry.startswith("__") and not hasattr(curr, entry):
|
|
284
|
+
entry = "_%s%s" % (curr.__class__.__name__, entry)
|
|
286
285
|
curr = getattr(curr, entry)
|
|
287
286
|
|
|
288
287
|
result = curr
|
|
@@ -299,7 +298,7 @@ def _run_with_interrupt_thread(original_func, py_db, curr_thread, frame, express
|
|
|
299
298
|
|
|
300
299
|
if interrupt_thread_timeout > 0:
|
|
301
300
|
on_interrupt_threads = pydevd_timeout.create_interrupt_this_thread_callback()
|
|
302
|
-
pydev_log.info(
|
|
301
|
+
pydev_log.info("Doing evaluate with interrupt threads timeout: %s.", interrupt_thread_timeout)
|
|
303
302
|
|
|
304
303
|
if on_interrupt_threads is None:
|
|
305
304
|
return original_func(py_db, frame, expression, is_exec)
|
|
@@ -318,13 +317,13 @@ def _run_with_unblock_threads(original_func, py_db, curr_thread, frame, expressi
|
|
|
318
317
|
unblock_threads_timeout = -1 # Don't use this if threads are managed individually.
|
|
319
318
|
|
|
320
319
|
if unblock_threads_timeout >= 0:
|
|
321
|
-
pydev_log.info(
|
|
320
|
+
pydev_log.info("Doing evaluate with unblock threads timeout: %s.", unblock_threads_timeout)
|
|
322
321
|
tid = get_current_thread_id(curr_thread)
|
|
323
322
|
|
|
324
323
|
def on_timeout_unblock_threads():
|
|
325
324
|
on_timeout_unblock_threads.called = True
|
|
326
|
-
pydev_log.info(
|
|
327
|
-
resume_threads(
|
|
325
|
+
pydev_log.info("Resuming threads after evaluate timeout.")
|
|
326
|
+
resume_threads("*", except_thread=curr_thread)
|
|
328
327
|
py_db.threads_suspended_single_notification.on_thread_resume(tid, curr_thread)
|
|
329
328
|
|
|
330
329
|
on_timeout_unblock_threads.called = False
|
|
@@ -345,25 +344,24 @@ def _run_with_unblock_threads(original_func, py_db, curr_thread, frame, expressi
|
|
|
345
344
|
|
|
346
345
|
|
|
347
346
|
def _evaluate_with_timeouts(original_func):
|
|
348
|
-
|
|
347
|
+
"""
|
|
349
348
|
Provides a decorator that wraps the original evaluate to deal with slow evaluates.
|
|
350
349
|
|
|
351
350
|
If some evaluation is too slow, we may show a message, resume threads or interrupt them
|
|
352
351
|
as needed (based on the related configurations).
|
|
353
|
-
|
|
352
|
+
"""
|
|
354
353
|
|
|
355
354
|
@functools.wraps(original_func)
|
|
356
355
|
def new_func(py_db, frame, expression, is_exec):
|
|
357
356
|
if py_db is None:
|
|
358
357
|
# Only for testing...
|
|
359
|
-
pydev_log.critical(
|
|
358
|
+
pydev_log.critical("_evaluate_with_timeouts called without py_db!")
|
|
360
359
|
return original_func(py_db, frame, expression, is_exec)
|
|
361
360
|
warn_evaluation_timeout = pydevd_constants.PYDEVD_WARN_EVALUATION_TIMEOUT
|
|
362
361
|
curr_thread = threading.current_thread()
|
|
363
362
|
|
|
364
363
|
def on_warn_evaluation_timeout():
|
|
365
|
-
py_db.writer.add_command(py_db.cmd_factory.make_evaluation_timeout_msg(
|
|
366
|
-
py_db, expression, curr_thread))
|
|
364
|
+
py_db.writer.add_command(py_db.cmd_factory.make_evaluation_timeout_msg(py_db, expression, curr_thread))
|
|
367
365
|
|
|
368
366
|
timeout_tracker = py_db.timeout_tracker # : :type timeout_tracker: TimeoutTracker
|
|
369
367
|
with timeout_tracker.call_on_timeout(warn_evaluation_timeout, on_warn_evaluation_timeout):
|
|
@@ -375,13 +373,14 @@ def _evaluate_with_timeouts(original_func):
|
|
|
375
373
|
_ASYNC_COMPILE_FLAGS = None
|
|
376
374
|
try:
|
|
377
375
|
from ast import PyCF_ALLOW_TOP_LEVEL_AWAIT
|
|
376
|
+
|
|
378
377
|
_ASYNC_COMPILE_FLAGS = PyCF_ALLOW_TOP_LEVEL_AWAIT
|
|
379
378
|
except:
|
|
380
379
|
pass
|
|
381
380
|
|
|
382
381
|
|
|
383
382
|
def compile_as_eval(expression):
|
|
384
|
-
|
|
383
|
+
"""
|
|
385
384
|
|
|
386
385
|
:param expression:
|
|
387
386
|
The expression to be _compiled.
|
|
@@ -389,16 +388,16 @@ def compile_as_eval(expression):
|
|
|
389
388
|
:return: code object
|
|
390
389
|
|
|
391
390
|
:raises Exception if the expression cannot be evaluated.
|
|
392
|
-
|
|
391
|
+
"""
|
|
393
392
|
expression_to_evaluate = _expression_to_evaluate(expression)
|
|
394
393
|
if _ASYNC_COMPILE_FLAGS is not None:
|
|
395
|
-
return compile(expression_to_evaluate,
|
|
394
|
+
return compile(expression_to_evaluate, "<string>", "eval", _ASYNC_COMPILE_FLAGS)
|
|
396
395
|
else:
|
|
397
|
-
return compile(expression_to_evaluate,
|
|
396
|
+
return compile(expression_to_evaluate, "<string>", "eval")
|
|
398
397
|
|
|
399
398
|
|
|
400
399
|
def _compile_as_exec(expression):
|
|
401
|
-
|
|
400
|
+
"""
|
|
402
401
|
|
|
403
402
|
:param expression:
|
|
404
403
|
The expression to be _compiled.
|
|
@@ -406,16 +405,15 @@ def _compile_as_exec(expression):
|
|
|
406
405
|
:return: code object
|
|
407
406
|
|
|
408
407
|
:raises Exception if the expression cannot be evaluated.
|
|
409
|
-
|
|
408
|
+
"""
|
|
410
409
|
expression_to_evaluate = _expression_to_evaluate(expression)
|
|
411
410
|
if _ASYNC_COMPILE_FLAGS is not None:
|
|
412
|
-
return compile(expression_to_evaluate,
|
|
411
|
+
return compile(expression_to_evaluate, "<string>", "exec", _ASYNC_COMPILE_FLAGS)
|
|
413
412
|
else:
|
|
414
|
-
return compile(expression_to_evaluate,
|
|
413
|
+
return compile(expression_to_evaluate, "<string>", "exec")
|
|
415
414
|
|
|
416
415
|
|
|
417
416
|
class _EvalAwaitInNewEventLoop(PyDBDaemonThread):
|
|
418
|
-
|
|
419
417
|
def __init__(self, py_db, compiled, updated_globals, updated_locals):
|
|
420
418
|
PyDBDaemonThread.__init__(self, py_db)
|
|
421
419
|
self._compiled = compiled
|
|
@@ -432,6 +430,7 @@ class _EvalAwaitInNewEventLoop(PyDBDaemonThread):
|
|
|
432
430
|
def _on_run(self):
|
|
433
431
|
try:
|
|
434
432
|
import asyncio
|
|
433
|
+
|
|
435
434
|
loop = asyncio.new_event_loop()
|
|
436
435
|
asyncio.set_event_loop(loop)
|
|
437
436
|
self.evaluated_value = asyncio.run(self._async_func())
|
|
@@ -441,7 +440,7 @@ class _EvalAwaitInNewEventLoop(PyDBDaemonThread):
|
|
|
441
440
|
|
|
442
441
|
@_evaluate_with_timeouts
|
|
443
442
|
def evaluate_expression(py_db, frame, expression, is_exec):
|
|
444
|
-
|
|
443
|
+
"""
|
|
445
444
|
:param str expression:
|
|
446
445
|
The expression to be evaluated.
|
|
447
446
|
|
|
@@ -483,7 +482,7 @@ def evaluate_expression(py_db, frame, expression, is_exec):
|
|
|
483
482
|
:param py_db:
|
|
484
483
|
The debugger. Only needed if some top-level await is detected (for creating a
|
|
485
484
|
PyDBDaemonThread).
|
|
486
|
-
|
|
485
|
+
"""
|
|
487
486
|
if frame is None:
|
|
488
487
|
return
|
|
489
488
|
|
|
@@ -523,17 +522,17 @@ def evaluate_expression(py_db, frame, expression, is_exec):
|
|
|
523
522
|
updated_globals = {}
|
|
524
523
|
updated_globals.update(frame.f_globals)
|
|
525
524
|
updated_globals.update(frame.f_locals)
|
|
526
|
-
if
|
|
525
|
+
if "globals" not in updated_globals:
|
|
527
526
|
# If the user explicitly uses 'globals()' then we provide the
|
|
528
527
|
# frame globals (unless he has shadowed it already).
|
|
529
|
-
updated_globals[
|
|
528
|
+
updated_globals["globals"] = lambda: frame.f_globals
|
|
530
529
|
|
|
531
530
|
initial_globals = updated_globals.copy()
|
|
532
531
|
|
|
533
532
|
updated_locals = None
|
|
534
533
|
|
|
535
534
|
try:
|
|
536
|
-
expression = expression.replace(
|
|
535
|
+
expression = expression.replace("@LINE@", "\n")
|
|
537
536
|
|
|
538
537
|
if is_exec:
|
|
539
538
|
try:
|
|
@@ -573,7 +572,7 @@ def evaluate_expression(py_db, frame, expression, is_exec):
|
|
|
573
572
|
else:
|
|
574
573
|
result = eval(compiled, updated_globals, updated_locals)
|
|
575
574
|
if result is not None: # Only print if it's not None (as python does)
|
|
576
|
-
sys.stdout.write(
|
|
575
|
+
sys.stdout.write("%s\n" % (result,))
|
|
577
576
|
return
|
|
578
577
|
|
|
579
578
|
else:
|
|
@@ -597,17 +596,16 @@ def evaluate_expression(py_db, frame, expression, is_exec):
|
|
|
597
596
|
|
|
598
597
|
|
|
599
598
|
def change_attr_expression(frame, attr, expression, dbg, value=SENTINEL_VALUE):
|
|
600
|
-
|
|
601
|
-
'''
|
|
599
|
+
"""Changes some attribute in a given frame."""
|
|
602
600
|
if frame is None:
|
|
603
601
|
return
|
|
604
602
|
|
|
605
603
|
try:
|
|
606
|
-
expression = expression.replace(
|
|
604
|
+
expression = expression.replace("@LINE@", "\n")
|
|
607
605
|
|
|
608
606
|
if dbg.plugin and value is SENTINEL_VALUE:
|
|
609
607
|
result = dbg.plugin.change_variable(frame, attr, expression)
|
|
610
|
-
if result:
|
|
608
|
+
if result is not dbg.plugin.EMPTY_SENTINEL:
|
|
611
609
|
return result
|
|
612
610
|
|
|
613
611
|
if attr[:7] == "Globals":
|
|
@@ -618,7 +616,7 @@ def change_attr_expression(frame, attr, expression, dbg, value=SENTINEL_VALUE):
|
|
|
618
616
|
frame.f_globals[attr] = value
|
|
619
617
|
return frame.f_globals[attr]
|
|
620
618
|
else:
|
|
621
|
-
if
|
|
619
|
+
if "." not in attr: # i.e.: if we have a '.', we're changing some attribute of a local var.
|
|
622
620
|
if pydevd_save_locals.is_save_locals_available():
|
|
623
621
|
if value is SENTINEL_VALUE:
|
|
624
622
|
value = eval(expression, frame.f_globals, frame.f_locals)
|
|
@@ -630,7 +628,7 @@ def change_attr_expression(frame, attr, expression, dbg, value=SENTINEL_VALUE):
|
|
|
630
628
|
if value is SENTINEL_VALUE:
|
|
631
629
|
value = eval(expression, frame.f_globals, frame.f_locals)
|
|
632
630
|
result = value
|
|
633
|
-
Exec(
|
|
631
|
+
Exec("%s=%s" % (attr, expression), frame.f_globals, frame.f_locals)
|
|
634
632
|
return result
|
|
635
633
|
|
|
636
634
|
except Exception:
|
|
@@ -643,15 +641,15 @@ MAX_SLICE_SIZE = 1000
|
|
|
643
641
|
|
|
644
642
|
def table_like_struct_to_xml(array, name, roffset, coffset, rows, cols, format):
|
|
645
643
|
_, type_name, _ = get_type(array)
|
|
646
|
-
if type_name ==
|
|
644
|
+
if type_name == "ndarray":
|
|
647
645
|
array, metaxml, r, c, f = array_to_meta_xml(array, name, format)
|
|
648
646
|
xml = metaxml
|
|
649
|
-
format =
|
|
647
|
+
format = "%" + f
|
|
650
648
|
if rows == -1 and cols == -1:
|
|
651
649
|
rows = r
|
|
652
650
|
cols = c
|
|
653
651
|
xml += array_to_xml(array, roffset, coffset, rows, cols, format)
|
|
654
|
-
elif type_name ==
|
|
652
|
+
elif type_name == "DataFrame":
|
|
655
653
|
xml = dataframe_to_xml(array, name, roffset, coffset, rows, cols, format)
|
|
656
654
|
else:
|
|
657
655
|
raise VariableError("Do not know how to convert type %s to table" % (type_name))
|
|
@@ -681,9 +679,9 @@ def array_to_xml(array, roffset, coffset, rows, cols, format):
|
|
|
681
679
|
array = array[roffset:]
|
|
682
680
|
rows = min(rows, len(array))
|
|
683
681
|
|
|
684
|
-
xml +=
|
|
682
|
+
xml += '<arraydata rows="%s" cols="%s"/>' % (rows, cols)
|
|
685
683
|
for row in range(rows):
|
|
686
|
-
xml +=
|
|
684
|
+
xml += '<row index="%s"/>' % to_string(row)
|
|
687
685
|
for col in range(cols):
|
|
688
686
|
value = array
|
|
689
687
|
if rows == 1 or cols == 1:
|
|
@@ -700,7 +698,7 @@ def array_to_xml(array, roffset, coffset, rows, cols, format):
|
|
|
700
698
|
else:
|
|
701
699
|
value = array[row][col]
|
|
702
700
|
value = format % value
|
|
703
|
-
xml += var_to_xml(value,
|
|
701
|
+
xml += var_to_xml(value, "")
|
|
704
702
|
return xml
|
|
705
703
|
|
|
706
704
|
|
|
@@ -710,19 +708,19 @@ def array_to_meta_xml(array, name, format):
|
|
|
710
708
|
l = len(array.shape)
|
|
711
709
|
|
|
712
710
|
# initial load, compute slice
|
|
713
|
-
if format ==
|
|
711
|
+
if format == "%":
|
|
714
712
|
if l > 2:
|
|
715
|
-
slice +=
|
|
713
|
+
slice += "[0]" * (l - 2)
|
|
716
714
|
for r in range(l - 2):
|
|
717
715
|
array = array[0]
|
|
718
|
-
if type ==
|
|
719
|
-
format =
|
|
720
|
-
elif type ==
|
|
721
|
-
format =
|
|
716
|
+
if type == "f":
|
|
717
|
+
format = ".5f"
|
|
718
|
+
elif type == "i" or type == "u":
|
|
719
|
+
format = "d"
|
|
722
720
|
else:
|
|
723
|
-
format =
|
|
721
|
+
format = "s"
|
|
724
722
|
else:
|
|
725
|
-
format = format.replace(
|
|
723
|
+
format = format.replace("%", "")
|
|
726
724
|
|
|
727
725
|
l = len(array.shape)
|
|
728
726
|
reslice = ""
|
|
@@ -733,25 +731,25 @@ def array_to_meta_xml(array, name, format):
|
|
|
733
731
|
# http://stackoverflow.com/questions/16837946/numpy-a-2-rows-1-column-file-loadtxt-returns-1row-2-columns
|
|
734
732
|
# explanation: http://stackoverflow.com/questions/15165170/how-do-i-maintain-row-column-orientation-of-vectors-in-numpy?rq=1
|
|
735
733
|
# we use kind of a hack - get information about memory from C_CONTIGUOUS
|
|
736
|
-
is_row = array.flags[
|
|
734
|
+
is_row = array.flags["C_CONTIGUOUS"]
|
|
737
735
|
|
|
738
736
|
if is_row:
|
|
739
737
|
rows = 1
|
|
740
738
|
cols = min(len(array), MAX_SLICE_SIZE)
|
|
741
739
|
if cols < len(array):
|
|
742
|
-
reslice =
|
|
740
|
+
reslice = "[0:%s]" % (cols)
|
|
743
741
|
array = array[0:cols]
|
|
744
742
|
else:
|
|
745
743
|
cols = 1
|
|
746
744
|
rows = min(len(array), MAX_SLICE_SIZE)
|
|
747
745
|
if rows < len(array):
|
|
748
|
-
reslice =
|
|
746
|
+
reslice = "[0:%s]" % (rows)
|
|
749
747
|
array = array[0:rows]
|
|
750
748
|
elif l == 2:
|
|
751
749
|
rows = min(array.shape[-2], MAX_SLICE_SIZE)
|
|
752
750
|
cols = min(array.shape[-1], MAX_SLICE_SIZE)
|
|
753
751
|
if cols < array.shape[-1] or rows < array.shape[-2]:
|
|
754
|
-
reslice =
|
|
752
|
+
reslice = "[0:%s, 0:%s]" % (rows, cols)
|
|
755
753
|
array = array[0:rows, 0:cols]
|
|
756
754
|
|
|
757
755
|
# avoid slice duplication
|
|
@@ -761,8 +759,15 @@ def array_to_meta_xml(array, name, format):
|
|
|
761
759
|
bounds = (0, 0)
|
|
762
760
|
if type in "biufc":
|
|
763
761
|
bounds = (array.min(), array.max())
|
|
764
|
-
xml = '<array slice
|
|
765
|
-
|
|
762
|
+
xml = '<array slice="%s" rows="%s" cols="%s" format="%s" type="%s" max="%s" min="%s"/>' % (
|
|
763
|
+
slice,
|
|
764
|
+
rows,
|
|
765
|
+
cols,
|
|
766
|
+
format,
|
|
767
|
+
type,
|
|
768
|
+
bounds[1],
|
|
769
|
+
bounds[0],
|
|
770
|
+
)
|
|
766
771
|
return array, xml, rows, cols, format
|
|
767
772
|
|
|
768
773
|
|
|
@@ -781,13 +786,12 @@ def dataframe_to_xml(df, name, roffset, coffset, rows, cols, format):
|
|
|
781
786
|
num_rows = min(df.shape[0], MAX_SLICE_SIZE)
|
|
782
787
|
num_cols = min(df.shape[1], MAX_SLICE_SIZE)
|
|
783
788
|
if (num_rows, num_cols) != df.shape:
|
|
784
|
-
df = df.iloc[0:num_rows, 0:
|
|
785
|
-
slice =
|
|
789
|
+
df = df.iloc[0:num_rows, 0:num_cols]
|
|
790
|
+
slice = ".iloc[0:%s, 0:%s]" % (num_rows, num_cols)
|
|
786
791
|
else:
|
|
787
|
-
slice =
|
|
792
|
+
slice = ""
|
|
788
793
|
slice = name + slice
|
|
789
|
-
xml = '<array slice
|
|
790
|
-
(slice, num_rows, num_cols)
|
|
794
|
+
xml = '<array slice="%s" rows="%s" cols="%s" format="" type="" max="0" min="0"/>\n' % (slice, num_rows, num_cols)
|
|
791
795
|
|
|
792
796
|
if (rows, cols) == (-1, -1):
|
|
793
797
|
rows, cols = num_rows, num_cols
|
|
@@ -805,39 +809,44 @@ def dataframe_to_xml(df, name, roffset, coffset, rows, cols, format):
|
|
|
805
809
|
bounds = (0, 0)
|
|
806
810
|
col_bounds[col] = bounds
|
|
807
811
|
|
|
808
|
-
df = df.iloc[roffset: roffset + rows, coffset: coffset + cols]
|
|
812
|
+
df = df.iloc[roffset : roffset + rows, coffset : coffset + cols]
|
|
809
813
|
rows, cols = df.shape
|
|
810
814
|
|
|
811
|
-
xml +=
|
|
812
|
-
format = format.replace(
|
|
815
|
+
xml += '<headerdata rows="%s" cols="%s">\n' % (rows, cols)
|
|
816
|
+
format = format.replace("%", "")
|
|
813
817
|
col_formats = []
|
|
814
818
|
|
|
815
|
-
get_label = lambda label: str(label) if not isinstance(label, tuple) else
|
|
819
|
+
get_label = lambda label: str(label) if not isinstance(label, tuple) else "/".join(map(str, label))
|
|
816
820
|
|
|
817
821
|
for col in range(cols):
|
|
818
822
|
dtype = df.dtypes.iloc[col].kind
|
|
819
|
-
if dtype ==
|
|
823
|
+
if dtype == "f" and format:
|
|
820
824
|
fmt = format
|
|
821
|
-
elif dtype ==
|
|
822
|
-
fmt =
|
|
823
|
-
elif dtype ==
|
|
824
|
-
fmt =
|
|
825
|
+
elif dtype == "f":
|
|
826
|
+
fmt = ".5f"
|
|
827
|
+
elif dtype == "i" or dtype == "u":
|
|
828
|
+
fmt = "d"
|
|
825
829
|
else:
|
|
826
|
-
fmt =
|
|
827
|
-
col_formats.append(
|
|
830
|
+
fmt = "s"
|
|
831
|
+
col_formats.append("%" + fmt)
|
|
828
832
|
bounds = col_bounds[col]
|
|
829
833
|
|
|
830
|
-
xml += '<colheader index
|
|
831
|
-
|
|
834
|
+
xml += '<colheader index="%s" label="%s" type="%s" format="%s" max="%s" min="%s" />\n' % (
|
|
835
|
+
str(col),
|
|
836
|
+
get_label(df.axes[1].values[col]),
|
|
837
|
+
dtype,
|
|
838
|
+
fmt,
|
|
839
|
+
bounds[1],
|
|
840
|
+
bounds[0],
|
|
841
|
+
)
|
|
832
842
|
for row, label in enumerate(iter(df.axes[0])):
|
|
833
|
-
xml +=
|
|
834
|
-
(str(row), get_label(label))
|
|
843
|
+
xml += '<rowheader index="%s" label = "%s"/>\n' % (str(row), get_label(label))
|
|
835
844
|
xml += "</headerdata>\n"
|
|
836
|
-
xml +=
|
|
845
|
+
xml += '<arraydata rows="%s" cols="%s"/>\n' % (rows, cols)
|
|
837
846
|
for row in range(rows):
|
|
838
|
-
xml +=
|
|
847
|
+
xml += '<row index="%s"/>\n' % str(row)
|
|
839
848
|
for col in range(cols):
|
|
840
849
|
value = df.iat[row, col]
|
|
841
850
|
value = col_formats[col] % value
|
|
842
|
-
xml += var_to_xml(value,
|
|
851
|
+
xml += var_to_xml(value, "")
|
|
843
852
|
return xml
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import sys
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
# =======================================================================================================================
|
|
5
|
+
# PydevdVmType
|
|
6
|
+
# =======================================================================================================================
|
|
7
|
+
class PydevdVmType:
|
|
8
|
+
PYTHON = "python"
|
|
9
|
+
JYTHON = "jython"
|
|
10
|
+
vm_type = None
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
# =======================================================================================================================
|
|
14
|
+
# set_vm_type
|
|
15
|
+
# =======================================================================================================================
|
|
16
|
+
def set_vm_type(vm_type):
|
|
17
|
+
PydevdVmType.vm_type = vm_type
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
# =======================================================================================================================
|
|
21
|
+
# get_vm_type
|
|
22
|
+
# =======================================================================================================================
|
|
23
|
+
def get_vm_type():
|
|
24
|
+
if PydevdVmType.vm_type is None:
|
|
25
|
+
setup_type()
|
|
26
|
+
return PydevdVmType.vm_type
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
# =======================================================================================================================
|
|
30
|
+
# setup_type
|
|
31
|
+
# =======================================================================================================================
|
|
32
|
+
def setup_type(str=None):
|
|
33
|
+
if str is not None:
|
|
34
|
+
PydevdVmType.vm_type = str
|
|
35
|
+
return
|
|
36
|
+
|
|
37
|
+
if sys.platform.startswith("java"):
|
|
38
|
+
PydevdVmType.vm_type = PydevdVmType.JYTHON
|
|
39
|
+
else:
|
|
40
|
+
PydevdVmType.vm_type = PydevdVmType.PYTHON
|