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_resolver.py
RENAMED
|
@@ -5,18 +5,24 @@ import traceback
|
|
|
5
5
|
from os.path import basename
|
|
6
6
|
|
|
7
7
|
from functools import partial
|
|
8
|
-
from _pydevd_bundle.pydevd_constants import
|
|
9
|
-
|
|
8
|
+
from _pydevd_bundle.pydevd_constants import (
|
|
9
|
+
IS_PY36_OR_GREATER,
|
|
10
|
+
MethodWrapperType,
|
|
11
|
+
RETURN_VALUES_DICT,
|
|
12
|
+
DebugInfoHolder,
|
|
13
|
+
IS_PYPY,
|
|
14
|
+
GENERATED_LEN_ATTR_NAME,
|
|
15
|
+
)
|
|
10
16
|
from _pydevd_bundle.pydevd_safe_repr import SafeRepr
|
|
11
17
|
from _pydevd_bundle import pydevd_constants
|
|
12
18
|
|
|
13
|
-
TOO_LARGE_MSG =
|
|
14
|
-
TOO_LARGE_ATTR =
|
|
19
|
+
TOO_LARGE_MSG = "Maximum number of items (%s) reached. To show more items customize the value of the PYDEVD_CONTAINER_RANDOM_ACCESS_MAX_ITEMS environment variable."
|
|
20
|
+
TOO_LARGE_ATTR = "Unable to handle:"
|
|
15
21
|
|
|
16
22
|
|
|
17
|
-
|
|
23
|
+
# =======================================================================================================================
|
|
18
24
|
# UnableToResolveVariableException
|
|
19
|
-
|
|
25
|
+
# =======================================================================================================================
|
|
20
26
|
class UnableToResolveVariableException(Exception):
|
|
21
27
|
pass
|
|
22
28
|
|
|
@@ -31,20 +37,20 @@ try:
|
|
|
31
37
|
except:
|
|
32
38
|
pass
|
|
33
39
|
|
|
34
|
-
|
|
40
|
+
# =======================================================================================================================
|
|
35
41
|
# See: pydevd_extension_api module for resolver interface
|
|
36
|
-
|
|
42
|
+
# =======================================================================================================================
|
|
37
43
|
|
|
38
44
|
|
|
39
45
|
def sorted_attributes_key(attr_name):
|
|
40
|
-
if attr_name.startswith(
|
|
41
|
-
if attr_name.endswith(
|
|
46
|
+
if attr_name.startswith("__"):
|
|
47
|
+
if attr_name.endswith("__"):
|
|
42
48
|
# __ double under before and after __
|
|
43
49
|
return (3, attr_name)
|
|
44
50
|
else:
|
|
45
51
|
# __ double under before
|
|
46
52
|
return (2, attr_name)
|
|
47
|
-
elif attr_name.startswith(
|
|
53
|
+
elif attr_name.startswith("_"):
|
|
48
54
|
# _ single under
|
|
49
55
|
return (1, attr_name)
|
|
50
56
|
else:
|
|
@@ -52,13 +58,13 @@ def sorted_attributes_key(attr_name):
|
|
|
52
58
|
return (0, attr_name)
|
|
53
59
|
|
|
54
60
|
|
|
55
|
-
|
|
61
|
+
# =======================================================================================================================
|
|
56
62
|
# DefaultResolver
|
|
57
|
-
|
|
63
|
+
# =======================================================================================================================
|
|
58
64
|
class DefaultResolver:
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
65
|
+
"""
|
|
66
|
+
DefaultResolver is the class that'll actually resolve how to show some variable.
|
|
67
|
+
"""
|
|
62
68
|
|
|
63
69
|
def resolve(self, var, attribute):
|
|
64
70
|
return getattr(var, attribute)
|
|
@@ -71,9 +77,9 @@ class DefaultResolver:
|
|
|
71
77
|
|
|
72
78
|
lst = sorted(dct.items(), key=lambda tup: sorted_attributes_key(tup[0]))
|
|
73
79
|
if used___dict__:
|
|
74
|
-
eval_name =
|
|
80
|
+
eval_name = ".__dict__[%s]"
|
|
75
81
|
else:
|
|
76
|
-
eval_name =
|
|
82
|
+
eval_name = ".%s"
|
|
77
83
|
|
|
78
84
|
ret = []
|
|
79
85
|
for attr_name, attr_value in lst:
|
|
@@ -93,8 +99,7 @@ class DefaultResolver:
|
|
|
93
99
|
found = java.util.HashMap()
|
|
94
100
|
|
|
95
101
|
original = obj
|
|
96
|
-
if hasattr_checked(obj,
|
|
97
|
-
|
|
102
|
+
if hasattr_checked(obj, "__class__") and obj.__class__ == java.lang.Class:
|
|
98
103
|
# get info about superclasses
|
|
99
104
|
classes = []
|
|
100
105
|
classes.append(obj)
|
|
@@ -111,7 +116,6 @@ class DefaultResolver:
|
|
|
111
116
|
|
|
112
117
|
# now is the time when we actually get info on the declared methods and fields
|
|
113
118
|
for obj in classes:
|
|
114
|
-
|
|
115
119
|
declaredMethods = obj.getDeclaredMethods()
|
|
116
120
|
declaredFields = obj.getDeclaredFields()
|
|
117
121
|
for i in range(len(declaredMethods)):
|
|
@@ -151,16 +155,16 @@ class DefaultResolver:
|
|
|
151
155
|
except Exception:
|
|
152
156
|
names = []
|
|
153
157
|
if not names:
|
|
154
|
-
if hasattr_checked(var,
|
|
158
|
+
if hasattr_checked(var, "__dict__"):
|
|
155
159
|
names = list(var.__dict__)
|
|
156
160
|
used___dict__ = True
|
|
157
161
|
return names, used___dict__
|
|
158
162
|
|
|
159
163
|
def _get_py_dictionary(self, var, names=None, used___dict__=False):
|
|
160
|
-
|
|
164
|
+
"""
|
|
161
165
|
:return tuple(names, used___dict__), where used___dict__ means we have to access
|
|
162
166
|
using obj.__dict__[name] instead of getattr(obj, name)
|
|
163
|
-
|
|
167
|
+
"""
|
|
164
168
|
|
|
165
169
|
# On PyPy we never show functions. This is because of a corner case where PyPy becomes
|
|
166
170
|
# absurdly slow -- it takes almost half a second to introspect a single numpy function (so,
|
|
@@ -183,7 +187,7 @@ class DefaultResolver:
|
|
|
183
187
|
try:
|
|
184
188
|
name_as_str = name
|
|
185
189
|
if name_as_str.__class__ != str:
|
|
186
|
-
name_as_str =
|
|
190
|
+
name_as_str = "%r" % (name_as_str,)
|
|
187
191
|
|
|
188
192
|
if not used___dict__:
|
|
189
193
|
attr = getattr(var, name)
|
|
@@ -209,7 +213,6 @@ class DefaultResolver:
|
|
|
209
213
|
|
|
210
214
|
|
|
211
215
|
class DAPGrouperResolver:
|
|
212
|
-
|
|
213
216
|
def get_contents_debug_adapter_protocol(self, obj, fmt=None):
|
|
214
217
|
return obj.get_contents_debug_adapter_protocol()
|
|
215
218
|
|
|
@@ -218,10 +221,10 @@ _basic_immutable_types = (int, float, complex, str, bytes, type(None), bool, fro
|
|
|
218
221
|
|
|
219
222
|
|
|
220
223
|
def _does_obj_repr_evaluate_to_obj(obj):
|
|
221
|
-
|
|
224
|
+
"""
|
|
222
225
|
If obj is an object where evaluating its representation leads to
|
|
223
226
|
the same object, return True, otherwise, return False.
|
|
224
|
-
|
|
227
|
+
"""
|
|
225
228
|
try:
|
|
226
229
|
if isinstance(obj, tuple):
|
|
227
230
|
for o in obj:
|
|
@@ -234,18 +237,17 @@ def _does_obj_repr_evaluate_to_obj(obj):
|
|
|
234
237
|
return False
|
|
235
238
|
|
|
236
239
|
|
|
237
|
-
|
|
240
|
+
# =======================================================================================================================
|
|
238
241
|
# DictResolver
|
|
239
|
-
|
|
242
|
+
# =======================================================================================================================
|
|
240
243
|
class DictResolver:
|
|
241
|
-
|
|
242
244
|
sort_keys = not IS_PY36_OR_GREATER
|
|
243
245
|
|
|
244
246
|
def resolve(self, dct, key):
|
|
245
247
|
if key in (GENERATED_LEN_ATTR_NAME, TOO_LARGE_ATTR):
|
|
246
248
|
return None
|
|
247
249
|
|
|
248
|
-
if
|
|
250
|
+
if "(" not in key:
|
|
249
251
|
# we have to treat that because the dict resolver is also used to directly resolve the global and local
|
|
250
252
|
# scopes (which already have the items directly)
|
|
251
253
|
try:
|
|
@@ -255,7 +257,7 @@ class DictResolver:
|
|
|
255
257
|
|
|
256
258
|
# ok, we have to iterate over the items to find the one that matches the id, because that's the only way
|
|
257
259
|
# to actually find the reference from the string we have before.
|
|
258
|
-
expected_id = int(key.split(
|
|
260
|
+
expected_id = int(key.split("(")[-1][:-1])
|
|
259
261
|
for key, val in dct.items():
|
|
260
262
|
if id(key) == expected_id:
|
|
261
263
|
return val
|
|
@@ -264,17 +266,17 @@ class DictResolver:
|
|
|
264
266
|
|
|
265
267
|
def key_to_str(self, key, fmt=None):
|
|
266
268
|
if fmt is not None:
|
|
267
|
-
if fmt.get(
|
|
269
|
+
if fmt.get("hex", False):
|
|
268
270
|
safe_repr = SafeRepr()
|
|
269
271
|
safe_repr.convert_to_hex = True
|
|
270
272
|
return safe_repr(key)
|
|
271
|
-
return
|
|
273
|
+
return "%r" % (key,)
|
|
272
274
|
|
|
273
275
|
def init_dict(self):
|
|
274
276
|
return {}
|
|
275
277
|
|
|
276
278
|
def get_contents_debug_adapter_protocol(self, dct, fmt=None):
|
|
277
|
-
|
|
279
|
+
"""
|
|
278
280
|
This method is to be used in the case where the variables are all saved by its id (and as
|
|
279
281
|
such don't need to have the `resolve` method called later on, so, keys don't need to
|
|
280
282
|
embed the reference in the key).
|
|
@@ -282,7 +284,7 @@ class DictResolver:
|
|
|
282
284
|
Note that the return should be ordered.
|
|
283
285
|
|
|
284
286
|
:return list(tuple(name:str, value:object, evaluateName:str))
|
|
285
|
-
|
|
287
|
+
"""
|
|
286
288
|
ret = []
|
|
287
289
|
|
|
288
290
|
i = 0
|
|
@@ -299,12 +301,12 @@ class DictResolver:
|
|
|
299
301
|
# If the key would be a duplicate, add the key id (otherwise
|
|
300
302
|
# VSCode won't show all keys correctly).
|
|
301
303
|
# See: https://github.com/microsoft/debugpy/issues/148
|
|
302
|
-
key_as_str =
|
|
304
|
+
key_as_str = "%s (id: %s)" % (key_as_str, id(key))
|
|
303
305
|
found_representations.add(key_as_str)
|
|
304
306
|
|
|
305
307
|
if _does_obj_repr_evaluate_to_obj(key):
|
|
306
308
|
s = self.key_to_str(key) # do not format the key
|
|
307
|
-
eval_key_str =
|
|
309
|
+
eval_key_str = "[%s]" % (s,)
|
|
308
310
|
else:
|
|
309
311
|
eval_key_str = None
|
|
310
312
|
ret.append((key_as_str, val, eval_key_str))
|
|
@@ -321,7 +323,7 @@ class DictResolver:
|
|
|
321
323
|
if self.sort_keys:
|
|
322
324
|
ret = sorted(ret, key=lambda tup: sorted_attributes_key(tup[0]))
|
|
323
325
|
|
|
324
|
-
ret.append((GENERATED_LEN_ATTR_NAME, len(dct), partial(_apply_evaluate_name, evaluate_name=
|
|
326
|
+
ret.append((GENERATED_LEN_ATTR_NAME, len(dct), partial(_apply_evaluate_name, evaluate_name="len(%s)")))
|
|
325
327
|
return ret
|
|
326
328
|
|
|
327
329
|
def get_dictionary(self, dct):
|
|
@@ -331,7 +333,7 @@ class DictResolver:
|
|
|
331
333
|
for key, val in dct.items():
|
|
332
334
|
i += 1
|
|
333
335
|
# we need to add the id because otherwise we cannot find the real object to get its contents later on.
|
|
334
|
-
key =
|
|
336
|
+
key = "%s (%s)" % (self.key_to_str(key), id(key))
|
|
335
337
|
ret[key] = val
|
|
336
338
|
if i >= pydevd_constants.PYDEVD_CONTAINER_RANDOM_ACCESS_MAX_ITEMS:
|
|
337
339
|
ret[TOO_LARGE_ATTR] = TOO_LARGE_MSG % (pydevd_constants.PYDEVD_CONTAINER_RANDOM_ACCESS_MAX_ITEMS,)
|
|
@@ -349,7 +351,6 @@ def _apply_evaluate_name(parent_name, evaluate_name):
|
|
|
349
351
|
|
|
350
352
|
|
|
351
353
|
class MoreItemsRange:
|
|
352
|
-
|
|
353
354
|
def __init__(self, value, from_i, to_i):
|
|
354
355
|
self.value = value
|
|
355
356
|
self.from_i = from_i
|
|
@@ -359,13 +360,13 @@ class MoreItemsRange:
|
|
|
359
360
|
l = len(self.value)
|
|
360
361
|
ret = []
|
|
361
362
|
|
|
362
|
-
format_str =
|
|
363
|
-
if fmt is not None and fmt.get(
|
|
364
|
-
format_str =
|
|
363
|
+
format_str = "%0" + str(int(len(str(l - 1)))) + "d"
|
|
364
|
+
if fmt is not None and fmt.get("hex", False):
|
|
365
|
+
format_str = "0x%0" + str(int(len(hex(l).lstrip("0x")))) + "x"
|
|
365
366
|
|
|
366
|
-
for i, item in enumerate(self.value[self.from_i:self.to_i]):
|
|
367
|
+
for i, item in enumerate(self.value[self.from_i : self.to_i]):
|
|
367
368
|
i += self.from_i
|
|
368
|
-
ret.append((format_str % i, item,
|
|
369
|
+
ret.append((format_str % i, item, "[%s]" % i))
|
|
369
370
|
return ret
|
|
370
371
|
|
|
371
372
|
def get_dictionary(self, _self, fmt=None):
|
|
@@ -375,25 +376,23 @@ class MoreItemsRange:
|
|
|
375
376
|
return dct
|
|
376
377
|
|
|
377
378
|
def resolve(self, attribute):
|
|
378
|
-
|
|
379
|
+
"""
|
|
379
380
|
:param var: that's the original object we're dealing with.
|
|
380
381
|
:param attribute: that's the key to resolve
|
|
381
382
|
-- either the dict key in get_dictionary or the name in the dap protocol.
|
|
382
|
-
|
|
383
|
+
"""
|
|
383
384
|
return self.value[int(attribute)]
|
|
384
385
|
|
|
385
386
|
def __eq__(self, o):
|
|
386
|
-
return isinstance(o, MoreItemsRange) and self.value is o.value and
|
|
387
|
-
self.from_i == o.from_i and self.to_i == o.to_i
|
|
387
|
+
return isinstance(o, MoreItemsRange) and self.value is o.value and self.from_i == o.from_i and self.to_i == o.to_i
|
|
388
388
|
|
|
389
389
|
def __str__(self):
|
|
390
|
-
return
|
|
390
|
+
return "[%s:%s]" % (self.from_i, self.to_i)
|
|
391
391
|
|
|
392
392
|
__repr__ = __str__
|
|
393
393
|
|
|
394
394
|
|
|
395
395
|
class MoreItems:
|
|
396
|
-
|
|
397
396
|
def __init__(self, value, handled_items):
|
|
398
397
|
self.value = value
|
|
399
398
|
self.handled_items = handled_items
|
|
@@ -424,7 +423,7 @@ class MoreItems:
|
|
|
424
423
|
return dct
|
|
425
424
|
|
|
426
425
|
def resolve(self, attribute):
|
|
427
|
-
from_i, to_i = attribute[1:-1].split(
|
|
426
|
+
from_i, to_i = attribute[1:-1].split(":")
|
|
428
427
|
from_i = int(from_i)
|
|
429
428
|
to_i = int(to_i)
|
|
430
429
|
return MoreItemsRange(self.value, from_i, to_i)
|
|
@@ -433,15 +432,15 @@ class MoreItems:
|
|
|
433
432
|
return isinstance(o, MoreItems) and self.value is o.value
|
|
434
433
|
|
|
435
434
|
def __str__(self):
|
|
436
|
-
return
|
|
435
|
+
return "..."
|
|
437
436
|
|
|
438
437
|
__repr__ = __str__
|
|
439
438
|
|
|
440
439
|
|
|
441
440
|
class ForwardInternalResolverToObject:
|
|
442
|
-
|
|
441
|
+
"""
|
|
443
442
|
To be used when we provide some internal object that'll actually do the resolution.
|
|
444
|
-
|
|
443
|
+
"""
|
|
445
444
|
|
|
446
445
|
def get_contents_debug_adapter_protocol(self, obj, fmt=None):
|
|
447
446
|
return obj.get_contents_debug_adapter_protocol(fmt)
|
|
@@ -454,25 +453,24 @@ class ForwardInternalResolverToObject:
|
|
|
454
453
|
|
|
455
454
|
|
|
456
455
|
class TupleResolver: # to enumerate tuples and lists
|
|
457
|
-
|
|
458
456
|
def resolve(self, var, attribute):
|
|
459
|
-
|
|
457
|
+
"""
|
|
460
458
|
:param var: that's the original object we're dealing with.
|
|
461
459
|
:param attribute: that's the key to resolve
|
|
462
460
|
-- either the dict key in get_dictionary or the name in the dap protocol.
|
|
463
|
-
|
|
461
|
+
"""
|
|
464
462
|
if attribute in (GENERATED_LEN_ATTR_NAME, TOO_LARGE_ATTR):
|
|
465
463
|
return None
|
|
466
464
|
try:
|
|
467
465
|
return var[int(attribute)]
|
|
468
466
|
except:
|
|
469
|
-
if attribute ==
|
|
467
|
+
if attribute == "more":
|
|
470
468
|
return MoreItems(var, pydevd_constants.PYDEVD_CONTAINER_INITIAL_EXPANDED_ITEMS)
|
|
471
469
|
|
|
472
470
|
return getattr(var, attribute)
|
|
473
471
|
|
|
474
472
|
def get_contents_debug_adapter_protocol(self, lst, fmt=None):
|
|
475
|
-
|
|
473
|
+
"""
|
|
476
474
|
This method is to be used in the case where the variables are all saved by its id (and as
|
|
477
475
|
such don't need to have the `resolve` method called later on, so, keys don't need to
|
|
478
476
|
embed the reference in the key).
|
|
@@ -480,17 +478,17 @@ class TupleResolver: # to enumerate tuples and lists
|
|
|
480
478
|
Note that the return should be ordered.
|
|
481
479
|
|
|
482
480
|
:return list(tuple(name:str, value:object, evaluateName:str))
|
|
483
|
-
|
|
481
|
+
"""
|
|
484
482
|
lst_len = len(lst)
|
|
485
483
|
ret = []
|
|
486
484
|
|
|
487
|
-
format_str =
|
|
488
|
-
if fmt is not None and fmt.get(
|
|
489
|
-
format_str =
|
|
485
|
+
format_str = "%0" + str(int(len(str(lst_len - 1)))) + "d"
|
|
486
|
+
if fmt is not None and fmt.get("hex", False):
|
|
487
|
+
format_str = "0x%0" + str(int(len(hex(lst_len).lstrip("0x")))) + "x"
|
|
490
488
|
|
|
491
489
|
initial_expanded = pydevd_constants.PYDEVD_CONTAINER_INITIAL_EXPANDED_ITEMS
|
|
492
490
|
for i, item in enumerate(lst):
|
|
493
|
-
ret.append((format_str % i, item,
|
|
491
|
+
ret.append((format_str % i, item, "[%s]" % i))
|
|
494
492
|
|
|
495
493
|
if i >= initial_expanded - 1:
|
|
496
494
|
if (lst_len - initial_expanded) < pydevd_constants.PYDEVD_CONTAINER_BUCKET_SIZE:
|
|
@@ -500,7 +498,7 @@ class TupleResolver: # to enumerate tuples and lists
|
|
|
500
498
|
else:
|
|
501
499
|
# Multiple buckets
|
|
502
500
|
item = MoreItems(lst, initial_expanded)
|
|
503
|
-
ret.append((
|
|
501
|
+
ret.append(("more", item, None))
|
|
504
502
|
break
|
|
505
503
|
|
|
506
504
|
# Needed in case the class extends the built-in type and has some additional fields.
|
|
@@ -508,16 +506,16 @@ class TupleResolver: # to enumerate tuples and lists
|
|
|
508
506
|
if from_default_resolver:
|
|
509
507
|
ret = from_default_resolver + ret
|
|
510
508
|
|
|
511
|
-
ret.append((GENERATED_LEN_ATTR_NAME, len(lst), partial(_apply_evaluate_name, evaluate_name=
|
|
509
|
+
ret.append((GENERATED_LEN_ATTR_NAME, len(lst), partial(_apply_evaluate_name, evaluate_name="len(%s)")))
|
|
512
510
|
return ret
|
|
513
511
|
|
|
514
512
|
def get_dictionary(self, var, fmt={}):
|
|
515
513
|
l = len(var)
|
|
516
514
|
d = {}
|
|
517
515
|
|
|
518
|
-
format_str =
|
|
519
|
-
if fmt is not None and fmt.get(
|
|
520
|
-
format_str =
|
|
516
|
+
format_str = "%0" + str(int(len(str(l - 1)))) + "d"
|
|
517
|
+
if fmt is not None and fmt.get("hex", False):
|
|
518
|
+
format_str = "0x%0" + str(int(len(hex(l).lstrip("0x")))) + "x"
|
|
521
519
|
|
|
522
520
|
initial_expanded = pydevd_constants.PYDEVD_CONTAINER_INITIAL_EXPANDED_ITEMS
|
|
523
521
|
for i, item in enumerate(var):
|
|
@@ -525,7 +523,7 @@ class TupleResolver: # to enumerate tuples and lists
|
|
|
525
523
|
|
|
526
524
|
if i >= initial_expanded - 1:
|
|
527
525
|
item = MoreItems(var, initial_expanded)
|
|
528
|
-
d[
|
|
526
|
+
d["more"] = item
|
|
529
527
|
break
|
|
530
528
|
|
|
531
529
|
# in case if the class extends built-in type and has some additional fields
|
|
@@ -535,13 +533,13 @@ class TupleResolver: # to enumerate tuples and lists
|
|
|
535
533
|
return d
|
|
536
534
|
|
|
537
535
|
|
|
538
|
-
|
|
536
|
+
# =======================================================================================================================
|
|
539
537
|
# SetResolver
|
|
540
|
-
|
|
538
|
+
# =======================================================================================================================
|
|
541
539
|
class SetResolver:
|
|
542
|
-
|
|
543
|
-
|
|
544
|
-
|
|
540
|
+
"""
|
|
541
|
+
Resolves a set as dict id(object)->object
|
|
542
|
+
"""
|
|
545
543
|
|
|
546
544
|
def get_contents_debug_adapter_protocol(self, obj, fmt=None):
|
|
547
545
|
ret = []
|
|
@@ -557,7 +555,7 @@ class SetResolver:
|
|
|
557
555
|
from_default_resolver = defaultResolver.get_contents_debug_adapter_protocol(obj, fmt=fmt)
|
|
558
556
|
if from_default_resolver:
|
|
559
557
|
ret = from_default_resolver + ret
|
|
560
|
-
ret.append((GENERATED_LEN_ATTR_NAME, len(obj), partial(_apply_evaluate_name, evaluate_name=
|
|
558
|
+
ret.append((GENERATED_LEN_ATTR_NAME, len(obj), partial(_apply_evaluate_name, evaluate_name="len(%s)")))
|
|
561
559
|
return ret
|
|
562
560
|
|
|
563
561
|
def resolve(self, var, attribute):
|
|
@@ -573,7 +571,7 @@ class SetResolver:
|
|
|
573
571
|
if id(v) == attribute:
|
|
574
572
|
return v
|
|
575
573
|
|
|
576
|
-
raise UnableToResolveVariableException(
|
|
574
|
+
raise UnableToResolveVariableException("Unable to resolve %s in %s" % (attribute, var))
|
|
577
575
|
|
|
578
576
|
def get_dictionary(self, var):
|
|
579
577
|
d = {}
|
|
@@ -609,11 +607,10 @@ class SetResolver:
|
|
|
609
607
|
return None
|
|
610
608
|
|
|
611
609
|
|
|
612
|
-
|
|
610
|
+
# =======================================================================================================================
|
|
613
611
|
# InstanceResolver
|
|
614
|
-
|
|
612
|
+
# =======================================================================================================================
|
|
615
613
|
class InstanceResolver:
|
|
616
|
-
|
|
617
614
|
def resolve(self, var, attribute):
|
|
618
615
|
field = var.__class__.getDeclaredField(attribute)
|
|
619
616
|
field.setAccessible(True)
|
|
@@ -634,13 +631,13 @@ class InstanceResolver:
|
|
|
634
631
|
return ret
|
|
635
632
|
|
|
636
633
|
|
|
637
|
-
|
|
634
|
+
# =======================================================================================================================
|
|
638
635
|
# JyArrayResolver
|
|
639
|
-
|
|
636
|
+
# =======================================================================================================================
|
|
640
637
|
class JyArrayResolver:
|
|
641
|
-
|
|
642
|
-
|
|
643
|
-
|
|
638
|
+
"""
|
|
639
|
+
This resolves a regular Object[] array from java
|
|
640
|
+
"""
|
|
644
641
|
|
|
645
642
|
def resolve(self, var, attribute):
|
|
646
643
|
if attribute == GENERATED_LEN_ATTR_NAME:
|
|
@@ -651,24 +648,23 @@ class JyArrayResolver:
|
|
|
651
648
|
ret = {}
|
|
652
649
|
|
|
653
650
|
for i in range(len(obj)):
|
|
654
|
-
ret[
|
|
651
|
+
ret[i] = obj[i]
|
|
655
652
|
|
|
656
653
|
ret[GENERATED_LEN_ATTR_NAME] = len(obj)
|
|
657
654
|
return ret
|
|
658
655
|
|
|
659
656
|
|
|
660
|
-
|
|
657
|
+
# =======================================================================================================================
|
|
661
658
|
# MultiValueDictResolver
|
|
662
|
-
|
|
659
|
+
# =======================================================================================================================
|
|
663
660
|
class MultiValueDictResolver(DictResolver):
|
|
664
|
-
|
|
665
661
|
def resolve(self, dct, key):
|
|
666
662
|
if key in (GENERATED_LEN_ATTR_NAME, TOO_LARGE_ATTR):
|
|
667
663
|
return None
|
|
668
664
|
|
|
669
665
|
# ok, we have to iterate over the items to find the one that matches the id, because that's the only way
|
|
670
666
|
# to actually find the reference from the string we have before.
|
|
671
|
-
expected_id = int(key.split(
|
|
667
|
+
expected_id = int(key.split("(")[-1][:-1])
|
|
672
668
|
for key in list(dct.keys()):
|
|
673
669
|
val = dct.getlist(key)
|
|
674
670
|
if id(key) == expected_id:
|
|
@@ -677,11 +673,10 @@ class MultiValueDictResolver(DictResolver):
|
|
|
677
673
|
raise UnableToResolveVariableException()
|
|
678
674
|
|
|
679
675
|
|
|
680
|
-
|
|
676
|
+
# =======================================================================================================================
|
|
681
677
|
# DjangoFormResolver
|
|
682
|
-
|
|
678
|
+
# =======================================================================================================================
|
|
683
679
|
class DjangoFormResolver(DefaultResolver):
|
|
684
|
-
|
|
685
680
|
def get_dictionary(self, var, names=None):
|
|
686
681
|
# Do not call self.errors because it is a property and has side effects.
|
|
687
682
|
names, used___dict__ = self.get_names(var)
|
|
@@ -701,53 +696,51 @@ class DjangoFormResolver(DefaultResolver):
|
|
|
701
696
|
return d
|
|
702
697
|
|
|
703
698
|
|
|
704
|
-
|
|
699
|
+
# =======================================================================================================================
|
|
705
700
|
# DequeResolver
|
|
706
|
-
|
|
701
|
+
# =======================================================================================================================
|
|
707
702
|
class DequeResolver(TupleResolver):
|
|
708
|
-
|
|
709
703
|
def get_dictionary(self, var):
|
|
710
704
|
d = TupleResolver.get_dictionary(self, var)
|
|
711
|
-
d[
|
|
705
|
+
d["maxlen"] = getattr(var, "maxlen", None)
|
|
712
706
|
return d
|
|
713
707
|
|
|
714
708
|
|
|
715
|
-
|
|
709
|
+
# =======================================================================================================================
|
|
716
710
|
# OrderedDictResolver
|
|
717
|
-
|
|
711
|
+
# =======================================================================================================================
|
|
718
712
|
class OrderedDictResolver(DictResolver):
|
|
719
|
-
|
|
720
713
|
sort_keys = False
|
|
721
714
|
|
|
722
715
|
def init_dict(self):
|
|
723
716
|
return OrderedDict()
|
|
724
717
|
|
|
725
718
|
|
|
726
|
-
|
|
719
|
+
# =======================================================================================================================
|
|
727
720
|
# FrameResolver
|
|
728
|
-
|
|
721
|
+
# =======================================================================================================================
|
|
729
722
|
class FrameResolver:
|
|
730
|
-
|
|
723
|
+
"""
|
|
731
724
|
This resolves a frame.
|
|
732
|
-
|
|
725
|
+
"""
|
|
733
726
|
|
|
734
727
|
def resolve(self, obj, attribute):
|
|
735
|
-
if attribute ==
|
|
728
|
+
if attribute == "__internals__":
|
|
736
729
|
return defaultResolver.get_dictionary(obj)
|
|
737
730
|
|
|
738
|
-
if attribute ==
|
|
731
|
+
if attribute == "stack":
|
|
739
732
|
return self.get_frame_stack(obj)
|
|
740
733
|
|
|
741
|
-
if attribute ==
|
|
734
|
+
if attribute == "f_locals":
|
|
742
735
|
return obj.f_locals
|
|
743
736
|
|
|
744
737
|
return None
|
|
745
738
|
|
|
746
739
|
def get_dictionary(self, obj):
|
|
747
740
|
ret = {}
|
|
748
|
-
ret[
|
|
749
|
-
ret[
|
|
750
|
-
ret[
|
|
741
|
+
ret["__internals__"] = defaultResolver.get_dictionary(obj)
|
|
742
|
+
ret["stack"] = self.get_frame_stack(obj)
|
|
743
|
+
ret["f_locals"] = obj.f_locals
|
|
751
744
|
return ret
|
|
752
745
|
|
|
753
746
|
def get_frame_stack(self, frame):
|
|
@@ -763,12 +756,12 @@ class FrameResolver:
|
|
|
763
756
|
|
|
764
757
|
def get_frame_name(self, frame):
|
|
765
758
|
if frame is None:
|
|
766
|
-
return
|
|
759
|
+
return "None"
|
|
767
760
|
try:
|
|
768
761
|
name = basename(frame.f_code.co_filename)
|
|
769
|
-
return
|
|
762
|
+
return "frame: %s [%s:%s] id:%s" % (frame.f_code.co_name, name, frame.f_lineno, id(frame))
|
|
770
763
|
except:
|
|
771
|
-
return
|
|
764
|
+
return "frame object"
|
|
772
765
|
|
|
773
766
|
|
|
774
767
|
defaultResolver = DefaultResolver()
|
|
@@ -787,7 +780,6 @@ forwardInternalResolverToObject = ForwardInternalResolverToObject()
|
|
|
787
780
|
|
|
788
781
|
|
|
789
782
|
class InspectStub:
|
|
790
|
-
|
|
791
783
|
def isbuiltin(self, _args):
|
|
792
784
|
return False
|
|
793
785
|
|
|
@@ -805,23 +797,23 @@ def get_var_scope(attr_name, attr_value, evaluate_name, handle_return_values):
|
|
|
805
797
|
if attr_name.startswith("'"):
|
|
806
798
|
if attr_name.endswith("'"):
|
|
807
799
|
# i.e.: strings denote that it is a regular value in some container.
|
|
808
|
-
return
|
|
800
|
+
return ""
|
|
809
801
|
else:
|
|
810
802
|
i = attr_name.find("__' (")
|
|
811
803
|
if i >= 0:
|
|
812
804
|
# Handle attr_name such as: >>'__name__' (1732494379184)<<
|
|
813
|
-
attr_name = attr_name[1: i + 2]
|
|
805
|
+
attr_name = attr_name[1 : i + 2]
|
|
814
806
|
|
|
815
807
|
if handle_return_values and attr_name == RETURN_VALUES_DICT:
|
|
816
|
-
return
|
|
808
|
+
return ""
|
|
817
809
|
|
|
818
810
|
elif attr_name == GENERATED_LEN_ATTR_NAME:
|
|
819
|
-
return
|
|
811
|
+
return ""
|
|
820
812
|
|
|
821
|
-
if attr_name.startswith(
|
|
813
|
+
if attr_name.startswith("__") and attr_name.endswith("__"):
|
|
822
814
|
return DAPGrouper.SCOPE_SPECIAL_VARS
|
|
823
815
|
|
|
824
|
-
if attr_name.startswith(
|
|
816
|
+
if attr_name.startswith("_") or attr_name.endswith("__"):
|
|
825
817
|
return DAPGrouper.SCOPE_PROTECTED_VARS
|
|
826
818
|
|
|
827
819
|
try:
|
|
@@ -835,4 +827,4 @@ def get_var_scope(attr_name, attr_value, evaluate_name, handle_return_values):
|
|
|
835
827
|
if DebugInfoHolder.DEBUG_TRACE_LEVEL > 0:
|
|
836
828
|
pydev_log.exception()
|
|
837
829
|
|
|
838
|
-
return
|
|
830
|
+
return ""
|