debugpy 1.8.5__zip → 1.8.6__zip
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {debugpy-1.8.5/src/debugpy.egg-info → debugpy-1.8.6}/PKG-INFO +1 -1
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydev_bundle/_pydev_calltip_util.py +19 -21
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydev_bundle/_pydev_completer.py +30 -30
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydev_bundle/_pydev_execfile.py +3 -1
- debugpy-1.8.6/src/debugpy/_vendored/pydevd/_pydev_bundle/_pydev_filesystem_encoding.py +43 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydev_bundle/_pydev_getopt.py +35 -32
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydev_bundle/_pydev_imports_tipper.py +83 -84
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydev_bundle/_pydev_jy_imports_tipper.py +92 -99
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydev_bundle/_pydev_log.py +2 -3
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydev_bundle/_pydev_saved_modules.py +51 -27
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydev_bundle/_pydev_sys_patch.py +11 -7
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydev_bundle/_pydev_tipper_common.py +6 -5
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydev_bundle/fsnotify/__init__.py +34 -38
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydev_bundle/pydev_console_utils.py +71 -69
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydev_bundle/pydev_import_hook.py +1 -3
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydev_bundle/pydev_imports.py +0 -1
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydev_bundle/pydev_ipython_console.py +14 -16
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydev_bundle/pydev_ipython_console_011.py +81 -93
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydev_bundle/pydev_is_thread_alive.py +3 -3
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydev_bundle/pydev_localhost.py +9 -8
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydev_bundle/pydev_log.py +33 -25
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydev_bundle/pydev_monkey.py +183 -170
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydev_bundle/pydev_monkey_qt.py +33 -29
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydev_bundle/pydev_override.py +6 -4
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydev_bundle/pydev_umd.py +19 -18
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydev_bundle/pydev_versioncheck.py +3 -3
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydev_runfiles/pydev_runfiles.py +165 -138
- debugpy-1.8.6/src/debugpy/_vendored/pydevd/_pydev_runfiles/pydev_runfiles_coverage.py +77 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydev_runfiles/pydev_runfiles_nose.py +35 -36
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydev_runfiles/pydev_runfiles_parallel.py +22 -23
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydev_runfiles/pydev_runfiles_parallel_client.py +37 -57
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydev_runfiles/pydev_runfiles_pytest2.py +54 -52
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydev_runfiles/pydev_runfiles_unittest.py +28 -37
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydev_runfiles/pydev_runfiles_xml_rpc.py +56 -53
- debugpy-1.8.6/src/debugpy/_vendored/pydevd/_pydevd_bundle/_debug_adapter/__main__pydevd_gen_debug_adapter_protocol.py +604 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/_debug_adapter/debugProtocol.json +551 -445
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/_debug_adapter/pydevd_base_schema.py +25 -29
- debugpy-1.8.6/src/debugpy/_vendored/pydevd/_pydevd_bundle/_debug_adapter/pydevd_schema.py +17458 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/_debug_adapter/pydevd_schema_log.py +11 -12
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevconsole_code.py +18 -19
- debugpy-1.8.6/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_additional_thread_info.py +41 -0
- debugpy-1.8.6/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_additional_thread_info_regular.py +327 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_api.py +263 -214
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_breakpoints.py +7 -10
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_bytecode_utils.py +187 -92
- debugpy-1.8.6/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_bytecode_utils_py311.py +105 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_code_to_source.py +46 -51
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_collect_bytecode_info.py +239 -176
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_comm.py +370 -297
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_comm_constants.py +78 -86
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_command_line_handling.py +55 -59
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_concurrency_analyser/pydevd_concurrency_logger.py +194 -58
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_concurrency_analyser/pydevd_thread_wrappers.py +2 -3
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_console.py +18 -23
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_constants.py +157 -127
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_custom_frames.py +10 -12
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_cython.c +35217 -23106
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_cython.pxd +15 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_cython.pyx +802 -511
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_cython_wrapper.py +18 -7
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_daemon_thread.py +32 -24
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_defaults.py +11 -13
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_dont_trace.py +16 -16
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_dont_trace_files.py +27 -2
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_exec2.py +1 -1
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_extension_api.py +4 -5
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_extension_utils.py +8 -10
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_filtering.py +50 -45
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_frame.py +462 -407
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_frame_utils.py +63 -61
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_gevent_integration.py +14 -16
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_import_class.py +27 -25
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_io.py +40 -42
- debugpy-1.8.6/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_json_debug_options.py +200 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_net_command.py +20 -19
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_net_command_factory_json.py +199 -108
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_net_command_factory_xml.py +121 -73
- debugpy-1.8.6/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_plugin_utils.py +208 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_process_net_command.py +206 -159
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_process_net_command_json.py +346 -334
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_referrers.py +75 -80
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_reload.py +35 -35
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_resolver.py +116 -124
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_runpy.py +44 -58
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_safe_repr.py +51 -55
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_save_locals.py +4 -2
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_signature.py +24 -24
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_source_mapping.py +19 -20
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_stackless.py +45 -49
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_suspended_frames.py +61 -58
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_thread_lifecycle.py +23 -13
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_timeout.py +29 -31
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_trace_dispatch.py +41 -11
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_trace_dispatch_regular.py +117 -55
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_traceproperty.py +11 -14
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_utils.py +90 -89
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_vars.py +106 -97
- debugpy-1.8.6/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_vm_type.py +40 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_xml.py +56 -46
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/pydevd_frame_eval_cython_wrapper.py +5 -5
- debugpy-1.8.6/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/pydevd_frame_eval_main.py +71 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/pydevd_frame_evaluator.c +11165 -5326
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/pydevd_frame_tracing.py +5 -6
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/pydevd_modify_bytecode.py +53 -56
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode/__init__.py +1 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode/bytecode.py +4 -6
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode/cfg.py +6 -26
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode/concrete.py +7 -21
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode/flags.py +5 -24
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode/instr.py +10 -34
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode/peephole_opt.py +1 -4
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode/tests/__init__.py +2 -6
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode/tests/test_bytecode.py +3 -5
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode/tests/test_cfg.py +11 -31
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode/tests/test_code.py +2 -2
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode/tests/test_concrete.py +14 -41
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode/tests/test_flags.py +2 -4
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode/tests/test_instr.py +7 -18
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode/tests/test_misc.py +6 -18
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode/tests/test_peephole_opt.py +7 -18
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode/tests/util_annotation.py +1 -3
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/pydevd_fix_code.py +14 -19
- debugpy-1.8.6/src/debugpy/_vendored/pydevd/_pydevd_sys_monitoring/_pydevd_sys_monitoring.py +1927 -0
- debugpy-1.8.6/src/debugpy/_vendored/pydevd/_pydevd_sys_monitoring/_pydevd_sys_monitoring_cython.c +43058 -0
- debugpy-1.8.6/src/debugpy/_vendored/pydevd/_pydevd_sys_monitoring/_pydevd_sys_monitoring_cython.pxd +46 -0
- debugpy-1.8.6/src/debugpy/_vendored/pydevd/_pydevd_sys_monitoring/_pydevd_sys_monitoring_cython.pyx +1934 -0
- debugpy-1.8.6/src/debugpy/_vendored/pydevd/_pydevd_sys_monitoring/pydevd_sys_monitoring.py +16 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydev_app_engine_debug_startup.py +12 -11
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydev_coverage.py +30 -32
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydev_ipython/inputhook.py +58 -54
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydev_ipython/inputhookglut.py +20 -24
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydev_ipython/inputhookgtk.py +8 -7
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydev_ipython/inputhookgtk3.py +8 -6
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydev_ipython/inputhookpyglet.py +11 -8
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydev_ipython/inputhookqt4.py +21 -18
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydev_ipython/inputhookqt5.py +17 -15
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydev_ipython/inputhookqt6.py +17 -15
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydev_ipython/inputhooktk.py +6 -4
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydev_ipython/inputhookwx.py +14 -10
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydev_ipython/matplotlibtools.py +30 -26
- debugpy-1.8.6/src/debugpy/_vendored/pydevd/pydev_ipython/qt.py +24 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydev_ipython/qt_for_kernel.py +37 -34
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydev_ipython/qt_loaders.py +86 -73
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydev_ipython/version.py +7 -7
- debugpy-1.8.6/src/debugpy/_vendored/pydevd/pydev_pysrc.py +1 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydev_run_in_console.py +23 -24
- debugpy-1.8.6/src/debugpy/_vendored/pydevd/pydev_sitecustomize/sitecustomize.py +267 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevconsole.py +55 -47
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd.py +732 -508
- debugpy-1.8.6/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/_always_live_program.py +40 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/_check.py +1 -0
- debugpy-1.8.6/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/_test_attach_to_process.py +11 -0
- debugpy-1.8.6/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/_test_attach_to_process_linux.py +75 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/add_code_to_python_process.py +130 -125
- debugpy-1.8.6/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/attach_amd64.dll +0 -0
- debugpy-1.8.6/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/attach_amd64.pdb +0 -0
- debugpy-1.8.6/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/attach_pydevd.py +89 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/attach_script.py +41 -32
- debugpy-1.8.6/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/attach_x86.dll +0 -0
- debugpy-1.8.6/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/attach_x86.pdb +0 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/common/py_utils.hpp +1 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/common/py_version.hpp +9 -1
- debugpy-1.8.6/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/inject_dll_amd64.exe +0 -0
- debugpy-1.8.6/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/inject_dll_amd64.pdb +0 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/inject_dll_x86.exe +0 -0
- debugpy-1.8.6/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/inject_dll_x86.pdb +0 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/linux_and_mac/lldb_prepare.py +10 -9
- debugpy-1.8.6/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/run_code_on_dllmain_amd64.dll +0 -0
- debugpy-1.8.6/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/run_code_on_dllmain_amd64.pdb +0 -0
- debugpy-1.8.6/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/run_code_on_dllmain_x86.dll +0 -0
- debugpy-1.8.6/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/run_code_on_dllmain_x86.pdb +0 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/__init__.py +103 -119
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/breakpoint.py +457 -516
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/compat.py +33 -15
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/crash.py +336 -281
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/debug.py +101 -131
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/disasm.py +148 -153
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/event.py +310 -302
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/interactive.py +235 -208
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/module.py +185 -218
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/process.py +428 -564
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/registry.py +54 -53
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/search.py +69 -73
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/sql.py +158 -170
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/system.py +143 -213
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/textio.py +302 -333
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/thread.py +220 -239
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/util.py +198 -177
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/win32/__init__.py +11 -11
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/win32/advapi32.py +1191 -713
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/win32/context_amd64.py +248 -194
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/win32/context_i386.py +132 -120
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/win32/dbghelp.py +450 -346
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/win32/defines.py +305 -286
- debugpy-1.8.6/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/win32/gdi32.py +526 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/win32/kernel32.py +1479 -1097
- debugpy-1.8.6/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/win32/ntdll.py +579 -0
- debugpy-1.8.6/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/win32/peb_teb.py +3517 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/win32/psapi.py +54 -31
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/win32/shell32.py +170 -149
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/win32/shlwapi.py +190 -108
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/win32/user32.py +542 -437
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/win32/version.py +489 -442
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/win32/wtsapi32.py +83 -65
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/window.py +70 -76
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/windows/attach.cpp +17 -9
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/windows/compile_windows.bat +1 -1
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_file_utils.py +141 -120
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_plugins/__init__.py +1 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_plugins/django_debug.py +175 -149
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_plugins/extensions/__init__.py +1 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_plugins/extensions/types/__init__.py +1 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_plugins/extensions/types/pydevd_helpers.py +5 -5
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_plugins/extensions/types/pydevd_plugin_numpy_types.py +28 -28
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_plugins/extensions/types/pydevd_plugin_pandas_types.py +22 -30
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_plugins/extensions/types/pydevd_plugins_django_form_str.py +3 -2
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_plugins/jinja2_debug.py +130 -108
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_plugins/pydevd_line_validation.py +27 -14
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_tracing.py +85 -66
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/setup_pydevd_cython.py +96 -59
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_version.py +3 -3
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/common/messaging.py +2 -1
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/server/cli.py +32 -17
- {debugpy-1.8.5 → debugpy-1.8.6/src/debugpy.egg-info}/PKG-INFO +1 -1
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy.egg-info/SOURCES.txt +6 -1
- debugpy-1.8.5/src/debugpy/_vendored/pydevd/_pydev_bundle/_pydev_filesystem_encoding.py +0 -41
- debugpy-1.8.5/src/debugpy/_vendored/pydevd/_pydev_runfiles/pydev_runfiles_coverage.py +0 -76
- debugpy-1.8.5/src/debugpy/_vendored/pydevd/_pydevd_bundle/_debug_adapter/__main__pydevd_gen_debug_adapter_protocol.py +0 -592
- debugpy-1.8.5/src/debugpy/_vendored/pydevd/_pydevd_bundle/_debug_adapter/pydevd_schema.py +0 -19514
- debugpy-1.8.5/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_additional_thread_info.py +0 -19
- debugpy-1.8.5/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_additional_thread_info_regular.py +0 -153
- debugpy-1.8.5/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_json_debug_options.py +0 -204
- debugpy-1.8.5/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_plugin_utils.py +0 -91
- debugpy-1.8.5/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_trace_api.py +0 -62
- debugpy-1.8.5/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_vm_type.py +0 -41
- debugpy-1.8.5/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/pydevd_frame_eval_main.py +0 -48
- debugpy-1.8.5/src/debugpy/_vendored/pydevd/pydev_ipython/qt.py +0 -23
- debugpy-1.8.5/src/debugpy/_vendored/pydevd/pydev_pysrc.py +0 -1
- debugpy-1.8.5/src/debugpy/_vendored/pydevd/pydev_sitecustomize/sitecustomize.py +0 -237
- debugpy-1.8.5/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/_always_live_program.py +0 -32
- debugpy-1.8.5/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/_test_attach_to_process.py +0 -9
- debugpy-1.8.5/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/_test_attach_to_process_linux.py +0 -74
- debugpy-1.8.5/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/attach_amd64.dll +0 -0
- debugpy-1.8.5/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/attach_amd64.pdb +0 -0
- debugpy-1.8.5/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/attach_pydevd.py +0 -79
- debugpy-1.8.5/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/attach_x86.dll +0 -0
- debugpy-1.8.5/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/attach_x86.pdb +0 -0
- debugpy-1.8.5/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/inject_dll_amd64.exe +0 -0
- debugpy-1.8.5/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/inject_dll_amd64.pdb +0 -0
- debugpy-1.8.5/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/inject_dll_x86.pdb +0 -0
- debugpy-1.8.5/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/run_code_on_dllmain_amd64.dll +0 -0
- debugpy-1.8.5/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/run_code_on_dllmain_amd64.pdb +0 -0
- debugpy-1.8.5/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/run_code_on_dllmain_x86.dll +0 -0
- debugpy-1.8.5/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/run_code_on_dllmain_x86.pdb +0 -0
- debugpy-1.8.5/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/win32/gdi32.py +0 -507
- debugpy-1.8.5/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/win32/ntdll.py +0 -539
- debugpy-1.8.5/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/win32/peb_teb.py +0 -3435
- {debugpy-1.8.5 → debugpy-1.8.6}/DESCRIPTION.md +0 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/LICENSE +0 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/MANIFEST.in +0 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/README.md +0 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/pyproject.toml +0 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/setup.cfg +0 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/setup.py +0 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/ThirdPartyNotices.txt +0 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/__init__.py +0 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/__main__.py +0 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/__init__.py +0 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/_pydevd_packaging.py +0 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/_util.py +0 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/force_pydevd.py +0 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydev_bundle/__init__.py +0 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydev_runfiles/__init__.py +0 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/__init__.py +0 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/_debug_adapter/__init__.py +0 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/_debug_adapter/debugProtocolCustom.json +0 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_concurrency_analyser/__init__.py +0 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/.gitignore +0 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/__init__.py +0 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/pydevd_frame_evaluator.pxd +0 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/pydevd_frame_evaluator.pyx +0 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/pydevd_frame_evaluator.template.pyx +0 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/release_mem.h +0 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/README.txt +0 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/__init__.py +0 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydev_ipython/README +0 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydev_ipython/__init__.py +0 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydev_sitecustomize/__not_in_default_pythonpath.txt +0 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/README.txt +0 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/common/py_custom_pyeval_settrace.hpp +0 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/common/py_custom_pyeval_settrace_310.hpp +0 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/common/py_custom_pyeval_settrace_311.hpp +0 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/common/py_custom_pyeval_settrace_common.hpp +0 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/common/py_settrace.hpp +0 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/common/python.h +0 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/common/ref_utils.hpp +0 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/linux_and_mac/.gitignore +0 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/linux_and_mac/attach.cpp +0 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/linux_and_mac/compile_linux.sh +0 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/linux_and_mac/compile_mac.sh +0 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/linux_and_mac/compile_manylinux.cmd +0 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/windows/attach.h +0 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/windows/inject_dll.cpp +0 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/windows/py_win_helpers.hpp +0 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/windows/run_code_in_memory.hpp +0 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/windows/run_code_on_dllmain.cpp +0 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/windows/stdafx.cpp +0 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/windows/stdafx.h +0 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/windows/targetver.h +0 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/_vendored/pydevd/pydevd_plugins/extensions/README.md +0 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/adapter/__init__.py +0 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/adapter/__main__.py +0 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/adapter/clients.py +0 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/adapter/components.py +0 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/adapter/launchers.py +0 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/adapter/servers.py +0 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/adapter/sessions.py +0 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/common/__init__.py +0 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/common/json.py +0 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/common/log.py +0 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/common/singleton.py +0 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/common/sockets.py +0 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/common/stacks.py +0 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/common/timestamp.py +0 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/common/util.py +0 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/launcher/__init__.py +0 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/launcher/__main__.py +0 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/launcher/debuggee.py +0 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/launcher/handlers.py +0 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/launcher/output.py +0 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/launcher/winapi.py +0 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/public_api.py +0 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/server/__init__.py +0 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/server/api.py +0 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy/server/attach_pid_injected.py +0 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy.egg-info/dependency_links.txt +0 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy.egg-info/entry_points.txt +0 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/src/debugpy.egg-info/top_level.txt +0 -0
- {debugpy-1.8.5 → debugpy-1.8.6}/versioneer.py +0 -0
|
@@ -13,9 +13,15 @@ from urllib.parse import quote # @UnresolvedImport
|
|
|
13
13
|
import time
|
|
14
14
|
import inspect
|
|
15
15
|
import sys
|
|
16
|
-
from _pydevd_bundle.pydevd_constants import
|
|
17
|
-
|
|
18
|
-
|
|
16
|
+
from _pydevd_bundle.pydevd_constants import (
|
|
17
|
+
USE_CUSTOM_SYS_CURRENT_FRAMES,
|
|
18
|
+
IS_PYPY,
|
|
19
|
+
SUPPORT_GEVENT,
|
|
20
|
+
GEVENT_SUPPORT_NOT_SET_MSG,
|
|
21
|
+
GENERATED_LEN_ATTR_NAME,
|
|
22
|
+
PYDEVD_WARN_SLOW_RESOLVE_TIMEOUT,
|
|
23
|
+
get_global_debugger,
|
|
24
|
+
)
|
|
19
25
|
|
|
20
26
|
|
|
21
27
|
def save_main_module(file, module_name):
|
|
@@ -24,24 +30,24 @@ def save_main_module(file, module_name):
|
|
|
24
30
|
# This will prevent the pydevd script from contaminating the namespace for the script to be debugged
|
|
25
31
|
# pretend pydevd is not the main module, and
|
|
26
32
|
# convince the file to be debugged that it was loaded as main
|
|
27
|
-
m = sys.modules[module_name] = sys.modules[
|
|
33
|
+
m = sys.modules[module_name] = sys.modules["__main__"]
|
|
28
34
|
m.__name__ = module_name
|
|
29
|
-
loader = m.__loader__ if hasattr(m,
|
|
30
|
-
spec = spec_from_file_location(
|
|
35
|
+
loader = m.__loader__ if hasattr(m, "__loader__") else None
|
|
36
|
+
spec = spec_from_file_location("__main__", file, loader=loader)
|
|
31
37
|
m = module_from_spec(spec)
|
|
32
|
-
sys.modules[
|
|
38
|
+
sys.modules["__main__"] = m
|
|
33
39
|
return m
|
|
34
40
|
|
|
35
41
|
|
|
36
42
|
def is_current_thread_main_thread():
|
|
37
|
-
if hasattr(threading,
|
|
43
|
+
if hasattr(threading, "main_thread"):
|
|
38
44
|
return threading.current_thread() is threading.main_thread()
|
|
39
45
|
else:
|
|
40
46
|
return isinstance(threading.current_thread(), threading._MainThread)
|
|
41
47
|
|
|
42
48
|
|
|
43
49
|
def get_main_thread():
|
|
44
|
-
if hasattr(threading,
|
|
50
|
+
if hasattr(threading, "main_thread"):
|
|
45
51
|
return threading.main_thread()
|
|
46
52
|
else:
|
|
47
53
|
for t in threading.enumerate():
|
|
@@ -58,9 +64,9 @@ def to_number(x):
|
|
|
58
64
|
except ValueError:
|
|
59
65
|
pass
|
|
60
66
|
|
|
61
|
-
l = x.find(
|
|
67
|
+
l = x.find("(")
|
|
62
68
|
if l != -1:
|
|
63
|
-
y = x[0:l - 1]
|
|
69
|
+
y = x[0 : l - 1]
|
|
64
70
|
# print y
|
|
65
71
|
try:
|
|
66
72
|
n = float(y)
|
|
@@ -97,7 +103,7 @@ def print_exc():
|
|
|
97
103
|
traceback.print_exc()
|
|
98
104
|
|
|
99
105
|
|
|
100
|
-
def quote_smart(s, safe=
|
|
106
|
+
def quote_smart(s, safe="/"):
|
|
101
107
|
return quote(s, safe)
|
|
102
108
|
|
|
103
109
|
|
|
@@ -120,9 +126,9 @@ def get_clsname_for_code(code, frame):
|
|
|
120
126
|
if hasattr(first_arg_class, func_name):
|
|
121
127
|
method = getattr(first_arg_class, func_name)
|
|
122
128
|
func_code = None
|
|
123
|
-
if hasattr(method,
|
|
129
|
+
if hasattr(method, "func_code"): # Python2
|
|
124
130
|
func_code = method.func_code
|
|
125
|
-
elif hasattr(method,
|
|
131
|
+
elif hasattr(method, "__code__"): # Python3
|
|
126
132
|
func_code = method.__code__
|
|
127
133
|
if func_code and func_code == code:
|
|
128
134
|
clsname = first_arg_class.__name__
|
|
@@ -132,7 +138,7 @@ def get_clsname_for_code(code, frame):
|
|
|
132
138
|
|
|
133
139
|
def get_non_pydevd_threads():
|
|
134
140
|
threads = threading.enumerate()
|
|
135
|
-
return [t for t in threads if t and not getattr(t,
|
|
141
|
+
return [t for t in threads if t and not getattr(t, "is_pydev_daemon_thread", False)]
|
|
136
142
|
|
|
137
143
|
|
|
138
144
|
if USE_CUSTOM_SYS_CURRENT_FRAMES and IS_PYPY:
|
|
@@ -144,9 +150,9 @@ else:
|
|
|
144
150
|
|
|
145
151
|
|
|
146
152
|
def dump_threads(stream=None, show_pydevd_threads=True):
|
|
147
|
-
|
|
153
|
+
"""
|
|
148
154
|
Helper to dump thread info.
|
|
149
|
-
|
|
155
|
+
"""
|
|
150
156
|
if stream is None:
|
|
151
157
|
stream = sys.stderr
|
|
152
158
|
thread_id_to_name_and_is_pydevd_thread = {}
|
|
@@ -156,17 +162,17 @@ def dump_threads(stream=None, show_pydevd_threads=True):
|
|
|
156
162
|
threading_enumerate = threading.enumerate
|
|
157
163
|
|
|
158
164
|
for t in threading_enumerate():
|
|
159
|
-
is_pydevd_thread = getattr(t,
|
|
165
|
+
is_pydevd_thread = getattr(t, "is_pydev_daemon_thread", False)
|
|
160
166
|
thread_id_to_name_and_is_pydevd_thread[t.ident] = (
|
|
161
|
-
|
|
162
|
-
is_pydevd_thread
|
|
167
|
+
"%s (daemon: %s, pydevd thread: %s)" % (t.name, t.daemon, is_pydevd_thread),
|
|
168
|
+
is_pydevd_thread,
|
|
163
169
|
)
|
|
164
170
|
except:
|
|
165
171
|
pass
|
|
166
172
|
|
|
167
|
-
stream.write(
|
|
168
|
-
stream.write(
|
|
169
|
-
stream.write(
|
|
173
|
+
stream.write("===============================================================================\n")
|
|
174
|
+
stream.write("Threads running\n")
|
|
175
|
+
stream.write("================================= Thread Dump =================================\n")
|
|
170
176
|
stream.flush()
|
|
171
177
|
|
|
172
178
|
for thread_id, frame in _tid_to_frame_for_dump_threads().items():
|
|
@@ -174,26 +180,25 @@ def dump_threads(stream=None, show_pydevd_threads=True):
|
|
|
174
180
|
if not show_pydevd_threads and is_pydevd_thread:
|
|
175
181
|
continue
|
|
176
182
|
|
|
177
|
-
stream.write(
|
|
183
|
+
stream.write("\n-------------------------------------------------------------------------------\n")
|
|
178
184
|
stream.write(" Thread %s" % (name,))
|
|
179
|
-
stream.write(
|
|
185
|
+
stream.write("\n\n")
|
|
180
186
|
|
|
181
187
|
for i, (filename, lineno, name, line) in enumerate(traceback.extract_stack(frame)):
|
|
182
|
-
|
|
183
188
|
stream.write(' File "%s", line %d, in %s\n' % (filename, lineno, name))
|
|
184
189
|
if line:
|
|
185
190
|
stream.write(" %s\n" % (line.strip()))
|
|
186
191
|
|
|
187
|
-
if i == 0 and
|
|
188
|
-
stream.write(
|
|
192
|
+
if i == 0 and "self" in frame.f_locals:
|
|
193
|
+
stream.write(" self: ")
|
|
189
194
|
try:
|
|
190
|
-
stream.write(str(frame.f_locals[
|
|
195
|
+
stream.write(str(frame.f_locals["self"]))
|
|
191
196
|
except:
|
|
192
|
-
stream.write(
|
|
193
|
-
stream.write(
|
|
197
|
+
stream.write("Unable to get str of: %s" % (type(frame.f_locals["self"]),))
|
|
198
|
+
stream.write("\n")
|
|
194
199
|
stream.flush()
|
|
195
200
|
|
|
196
|
-
stream.write(
|
|
201
|
+
stream.write("\n=============================== END Thread Dump ===============================")
|
|
197
202
|
stream.flush()
|
|
198
203
|
|
|
199
204
|
|
|
@@ -201,14 +206,14 @@ def _extract_variable_nested_braces(char_iter):
|
|
|
201
206
|
expression = []
|
|
202
207
|
level = 0
|
|
203
208
|
for c in char_iter:
|
|
204
|
-
if c ==
|
|
209
|
+
if c == "{":
|
|
205
210
|
level += 1
|
|
206
|
-
if c ==
|
|
211
|
+
if c == "}":
|
|
207
212
|
level -= 1
|
|
208
213
|
if level == -1:
|
|
209
|
-
return
|
|
214
|
+
return "".join(expression).strip()
|
|
210
215
|
expression.append(c)
|
|
211
|
-
raise SyntaxError(
|
|
216
|
+
raise SyntaxError("Unbalanced braces in expression.")
|
|
212
217
|
|
|
213
218
|
|
|
214
219
|
def _extract_expression_list(log_message):
|
|
@@ -217,15 +222,15 @@ def _extract_expression_list(log_message):
|
|
|
217
222
|
expression_vars = []
|
|
218
223
|
char_iter = iter(log_message)
|
|
219
224
|
for c in char_iter:
|
|
220
|
-
if c ==
|
|
225
|
+
if c == "{":
|
|
221
226
|
expression_var = _extract_variable_nested_braces(char_iter)
|
|
222
227
|
if expression_var:
|
|
223
|
-
expression.append(
|
|
228
|
+
expression.append("%s")
|
|
224
229
|
expression_vars.append(expression_var)
|
|
225
230
|
else:
|
|
226
231
|
expression.append(c)
|
|
227
232
|
|
|
228
|
-
expression =
|
|
233
|
+
expression = "".join(expression)
|
|
229
234
|
return expression, expression_vars
|
|
230
235
|
|
|
231
236
|
|
|
@@ -233,34 +238,34 @@ def convert_dap_log_message_to_expression(log_message):
|
|
|
233
238
|
try:
|
|
234
239
|
expression, expression_vars = _extract_expression_list(log_message)
|
|
235
240
|
except SyntaxError:
|
|
236
|
-
return repr(
|
|
241
|
+
return repr("Unbalanced braces in: %s" % (log_message))
|
|
237
242
|
if not expression_vars:
|
|
238
243
|
return repr(expression)
|
|
239
244
|
# Note: use '%' to be compatible with Python 2.6.
|
|
240
|
-
return repr(expression) +
|
|
245
|
+
return repr(expression) + " % (" + ", ".join(str(x) for x in expression_vars) + ",)"
|
|
241
246
|
|
|
242
247
|
|
|
243
248
|
def notify_about_gevent_if_needed(stream=None):
|
|
244
|
-
|
|
249
|
+
"""
|
|
245
250
|
When debugging with gevent check that the gevent flag is used if the user uses the gevent
|
|
246
251
|
monkey-patching.
|
|
247
252
|
|
|
248
253
|
:return bool:
|
|
249
254
|
Returns True if a message had to be shown to the user and False otherwise.
|
|
250
|
-
|
|
255
|
+
"""
|
|
251
256
|
stream = stream if stream is not None else sys.stderr
|
|
252
257
|
if not SUPPORT_GEVENT:
|
|
253
|
-
gevent_monkey = sys.modules.get(
|
|
258
|
+
gevent_monkey = sys.modules.get("gevent.monkey")
|
|
254
259
|
if gevent_monkey is not None:
|
|
255
260
|
try:
|
|
256
261
|
saved = gevent_monkey.saved
|
|
257
262
|
except AttributeError:
|
|
258
|
-
pydev_log.exception_once(
|
|
263
|
+
pydev_log.exception_once("Error checking for gevent monkey-patching.")
|
|
259
264
|
return False
|
|
260
265
|
|
|
261
266
|
if saved:
|
|
262
267
|
# Note: print to stderr as it may deadlock the debugger.
|
|
263
|
-
sys.stderr.write(
|
|
268
|
+
sys.stderr.write("%s\n" % (GEVENT_SUPPORT_NOT_SET_MSG,))
|
|
264
269
|
return True
|
|
265
270
|
|
|
266
271
|
return False
|
|
@@ -299,11 +304,10 @@ def isinstance_checked(obj, cls):
|
|
|
299
304
|
|
|
300
305
|
|
|
301
306
|
class ScopeRequest(object):
|
|
302
|
-
|
|
303
|
-
__slots__ = ['variable_reference', 'scope']
|
|
307
|
+
__slots__ = ["variable_reference", "scope"]
|
|
304
308
|
|
|
305
309
|
def __init__(self, variable_reference, scope):
|
|
306
|
-
assert scope in (
|
|
310
|
+
assert scope in ("globals", "locals")
|
|
307
311
|
self.variable_reference = variable_reference
|
|
308
312
|
self.scope = scope
|
|
309
313
|
|
|
@@ -321,15 +325,15 @@ class ScopeRequest(object):
|
|
|
321
325
|
|
|
322
326
|
|
|
323
327
|
class DAPGrouper(object):
|
|
324
|
-
|
|
328
|
+
"""
|
|
325
329
|
Note: this is a helper class to group variables on the debug adapter protocol (DAP). For
|
|
326
330
|
the xml protocol the type is just added to each variable and the UI can group/hide it as needed.
|
|
327
|
-
|
|
331
|
+
"""
|
|
328
332
|
|
|
329
|
-
SCOPE_SPECIAL_VARS =
|
|
330
|
-
SCOPE_PROTECTED_VARS =
|
|
331
|
-
SCOPE_FUNCTION_VARS =
|
|
332
|
-
SCOPE_CLASS_VARS =
|
|
333
|
+
SCOPE_SPECIAL_VARS = "special variables"
|
|
334
|
+
SCOPE_PROTECTED_VARS = "protected variables"
|
|
335
|
+
SCOPE_FUNCTION_VARS = "function variables"
|
|
336
|
+
SCOPE_CLASS_VARS = "class variables"
|
|
333
337
|
|
|
334
338
|
SCOPES_SORTED = [
|
|
335
339
|
SCOPE_SPECIAL_VARS,
|
|
@@ -338,7 +342,7 @@ class DAPGrouper(object):
|
|
|
338
342
|
SCOPE_CLASS_VARS,
|
|
339
343
|
]
|
|
340
344
|
|
|
341
|
-
__slots__ = [
|
|
345
|
+
__slots__ = ["variable_reference", "scope", "contents_debug_adapter_protocol"]
|
|
342
346
|
|
|
343
347
|
def __init__(self, scope):
|
|
344
348
|
self.variable_reference = id(self)
|
|
@@ -361,14 +365,14 @@ class DAPGrouper(object):
|
|
|
361
365
|
return hash((self.variable_reference, self.scope))
|
|
362
366
|
|
|
363
367
|
def __repr__(self):
|
|
364
|
-
return
|
|
368
|
+
return ""
|
|
365
369
|
|
|
366
370
|
def __str__(self):
|
|
367
|
-
return
|
|
371
|
+
return ""
|
|
368
372
|
|
|
369
373
|
|
|
370
374
|
def interrupt_main_thread(main_thread=None):
|
|
371
|
-
|
|
375
|
+
"""
|
|
372
376
|
Generates a KeyboardInterrupt in the main thread by sending a Ctrl+C
|
|
373
377
|
or by calling thread.interrupt_main().
|
|
374
378
|
|
|
@@ -378,21 +382,21 @@ def interrupt_main_thread(main_thread=None):
|
|
|
378
382
|
Note: if unable to send a Ctrl+C, the KeyboardInterrupt will only be raised
|
|
379
383
|
when the next Python instruction is about to be executed (so, it won't interrupt
|
|
380
384
|
a sleep(1000)).
|
|
381
|
-
|
|
385
|
+
"""
|
|
382
386
|
if main_thread is None:
|
|
383
387
|
main_thread = threading.main_thread()
|
|
384
388
|
|
|
385
|
-
pydev_log.debug(
|
|
389
|
+
pydev_log.debug("Interrupt main thread.")
|
|
386
390
|
called = False
|
|
387
391
|
try:
|
|
388
|
-
if os.name ==
|
|
392
|
+
if os.name == "posix":
|
|
389
393
|
# On Linux we can't interrupt 0 as in Windows because it's
|
|
390
394
|
# actually owned by a process -- on the good side, signals
|
|
391
395
|
# work much better on Linux!
|
|
392
396
|
os.kill(os.getpid(), signal.SIGINT)
|
|
393
397
|
called = True
|
|
394
398
|
|
|
395
|
-
elif os.name ==
|
|
399
|
+
elif os.name == "nt":
|
|
396
400
|
# This generates a Ctrl+C only for the current process and not
|
|
397
401
|
# to the process group!
|
|
398
402
|
# Note: there doesn't seem to be any public documentation for this
|
|
@@ -417,33 +421,32 @@ def interrupt_main_thread(main_thread=None):
|
|
|
417
421
|
except:
|
|
418
422
|
# If something went wrong, fallback to interrupting when the next
|
|
419
423
|
# Python instruction is being called.
|
|
420
|
-
pydev_log.exception(
|
|
424
|
+
pydev_log.exception("Error interrupting main thread (using fallback).")
|
|
421
425
|
|
|
422
426
|
if not called:
|
|
423
427
|
try:
|
|
424
428
|
# In this case, we don't really interrupt a sleep() nor IO operations
|
|
425
429
|
# (this makes the KeyboardInterrupt be sent only when the next Python
|
|
426
430
|
# instruction is about to be executed).
|
|
427
|
-
if hasattr(thread,
|
|
431
|
+
if hasattr(thread, "interrupt_main"):
|
|
428
432
|
thread.interrupt_main()
|
|
429
433
|
else:
|
|
430
434
|
main_thread._thread.interrupt() # Jython
|
|
431
435
|
except:
|
|
432
|
-
pydev_log.exception(
|
|
436
|
+
pydev_log.exception("Error on interrupt main thread fallback.")
|
|
433
437
|
|
|
434
438
|
|
|
435
439
|
class Timer(object):
|
|
436
|
-
|
|
437
440
|
def __init__(self, min_diff=PYDEVD_WARN_SLOW_RESOLVE_TIMEOUT):
|
|
438
441
|
self.min_diff = min_diff
|
|
439
442
|
self._curr_time = time.time()
|
|
440
443
|
|
|
441
|
-
def print_time(self, msg=
|
|
444
|
+
def print_time(self, msg="Elapsed:"):
|
|
442
445
|
old = self._curr_time
|
|
443
446
|
new = self._curr_time = time.time()
|
|
444
447
|
diff = new - old
|
|
445
448
|
if diff >= self.min_diff:
|
|
446
|
-
print(
|
|
449
|
+
print("%s: %.2fs" % (msg, diff))
|
|
447
450
|
|
|
448
451
|
def _report_slow(self, compute_msg, *args):
|
|
449
452
|
old = self._curr_time
|
|
@@ -465,16 +468,14 @@ class Timer(object):
|
|
|
465
468
|
pass
|
|
466
469
|
if attrs_tab_separated:
|
|
467
470
|
return (
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
attrs_tab_separated.replace('\t', '.'), attr_name, attr_type, diff, PYDEVD_WARN_SLOW_RESOLVE_TIMEOUT)
|
|
471
|
+
"pydevd warning: Computing repr of %s.%s (%s) was slow (took %.2fs).\n"
|
|
472
|
+
"Customize report timeout by setting the `PYDEVD_WARN_SLOW_RESOLVE_TIMEOUT` environment variable to a higher timeout (default is: %ss)\n"
|
|
473
|
+
) % (attrs_tab_separated.replace("\t", "."), attr_name, attr_type, diff, PYDEVD_WARN_SLOW_RESOLVE_TIMEOUT)
|
|
472
474
|
else:
|
|
473
475
|
return (
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
|
|
477
|
-
attr_name, attr_type, diff, PYDEVD_WARN_SLOW_RESOLVE_TIMEOUT)
|
|
476
|
+
"pydevd warning: Computing repr of %s (%s) was slow (took %.2fs)\n"
|
|
477
|
+
"Customize report timeout by setting the `PYDEVD_WARN_SLOW_RESOLVE_TIMEOUT` environment variable to a higher timeout (default is: %ss)\n"
|
|
478
|
+
) % (attr_name, attr_type, diff, PYDEVD_WARN_SLOW_RESOLVE_TIMEOUT)
|
|
478
479
|
|
|
479
480
|
def report_if_getting_attr_slow(self, cls, attr_name):
|
|
480
481
|
self._report_slow(self._compute_get_attr_slow, cls, attr_name)
|
|
@@ -485,32 +486,32 @@ class Timer(object):
|
|
|
485
486
|
except:
|
|
486
487
|
pass
|
|
487
488
|
return (
|
|
488
|
-
|
|
489
|
-
|
|
490
|
-
|
|
489
|
+
"pydevd warning: Getting attribute %s.%s was slow (took %.2fs)\n"
|
|
490
|
+
"Customize report timeout by setting the `PYDEVD_WARN_SLOW_RESOLVE_TIMEOUT` environment variable to a higher timeout (default is: %ss)\n"
|
|
491
|
+
) % (cls, attr_name, diff, PYDEVD_WARN_SLOW_RESOLVE_TIMEOUT)
|
|
491
492
|
|
|
492
493
|
|
|
493
494
|
def import_attr_from_module(import_with_attr_access):
|
|
494
|
-
if
|
|
495
|
+
if "." not in import_with_attr_access:
|
|
495
496
|
# We need at least one '.' (we don't support just the module import, we need the attribute access too).
|
|
496
|
-
raise ImportError(
|
|
497
|
+
raise ImportError("Unable to import module with attr access: %s" % (import_with_attr_access,))
|
|
497
498
|
|
|
498
|
-
module_name, attr_name = import_with_attr_access.rsplit(
|
|
499
|
+
module_name, attr_name = import_with_attr_access.rsplit(".", 1)
|
|
499
500
|
|
|
500
501
|
while True:
|
|
501
502
|
try:
|
|
502
503
|
mod = import_module(module_name)
|
|
503
504
|
except ImportError:
|
|
504
|
-
if
|
|
505
|
-
raise ImportError(
|
|
505
|
+
if "." not in module_name:
|
|
506
|
+
raise ImportError("Unable to import module with attr access: %s" % (import_with_attr_access,))
|
|
506
507
|
|
|
507
|
-
module_name, new_attr_part = module_name.rsplit(
|
|
508
|
-
attr_name = new_attr_part +
|
|
508
|
+
module_name, new_attr_part = module_name.rsplit(".", 1)
|
|
509
|
+
attr_name = new_attr_part + "." + attr_name
|
|
509
510
|
else:
|
|
510
511
|
# Ok, we got the base module, now, get the attribute we need.
|
|
511
512
|
try:
|
|
512
|
-
for attr in attr_name.split(
|
|
513
|
+
for attr in attr_name.split("."):
|
|
513
514
|
mod = getattr(mod, attr)
|
|
514
515
|
return mod
|
|
515
516
|
except:
|
|
516
|
-
raise ImportError(
|
|
517
|
+
raise ImportError("Unable to import module with attr access: %s" % (import_with_attr_access,))
|