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
|
@@ -37,15 +37,15 @@ Window instrumentation.
|
|
|
37
37
|
|
|
38
38
|
__revision__ = "$Id$"
|
|
39
39
|
|
|
40
|
-
__all__ = [
|
|
40
|
+
__all__ = ["Window"]
|
|
41
41
|
|
|
42
42
|
from winappdbg import win32
|
|
43
43
|
|
|
44
44
|
# delayed imports
|
|
45
45
|
Process = None
|
|
46
|
-
Thread
|
|
46
|
+
Thread = None
|
|
47
47
|
|
|
48
|
-
|
|
48
|
+
# ==============================================================================
|
|
49
49
|
|
|
50
50
|
# Unlike Process, Thread and Module, there's no container for Window objects.
|
|
51
51
|
# That's because Window objects don't really store any data besides the handle.
|
|
@@ -65,7 +65,8 @@ Thread = None
|
|
|
65
65
|
# point the hook callback to it. We'd need to have the remote procedure call
|
|
66
66
|
# feature first as (I believe) the hook can't be set remotely in this case.
|
|
67
67
|
|
|
68
|
-
|
|
68
|
+
|
|
69
|
+
class Window(object):
|
|
69
70
|
"""
|
|
70
71
|
Interface to an open window in the current desktop.
|
|
71
72
|
|
|
@@ -120,7 +121,7 @@ class Window (object):
|
|
|
120
121
|
@ivar placement: Window placement in the desktop.
|
|
121
122
|
"""
|
|
122
123
|
|
|
123
|
-
def __init__(self, hWnd
|
|
124
|
+
def __init__(self, hWnd=None, process=None, thread=None):
|
|
124
125
|
"""
|
|
125
126
|
@type hWnd: int or L{win32.HWND}
|
|
126
127
|
@param hWnd: Window handle.
|
|
@@ -131,9 +132,9 @@ class Window (object):
|
|
|
131
132
|
@type thread: L{Thread}
|
|
132
133
|
@param thread: (Optional) Thread that owns this window.
|
|
133
134
|
"""
|
|
134
|
-
self.hWnd
|
|
135
|
+
self.hWnd = hWnd
|
|
135
136
|
self.dwProcessId = None
|
|
136
|
-
self.dwThreadId
|
|
137
|
+
self.dwThreadId = None
|
|
137
138
|
self.set_process(process)
|
|
138
139
|
self.set_thread(thread)
|
|
139
140
|
|
|
@@ -177,16 +178,15 @@ class Window (object):
|
|
|
177
178
|
|
|
178
179
|
def __get_pid_and_tid(self):
|
|
179
180
|
"Internally used by get_pid() and get_tid()."
|
|
180
|
-
self.dwThreadId, self.dwProcessId =
|
|
181
|
-
win32.GetWindowThreadProcessId(self.get_handle())
|
|
181
|
+
self.dwThreadId, self.dwProcessId = win32.GetWindowThreadProcessId(self.get_handle())
|
|
182
182
|
|
|
183
183
|
def __load_Process_class(self):
|
|
184
|
-
global Process
|
|
184
|
+
global Process # delayed import
|
|
185
185
|
if Process is None:
|
|
186
186
|
from winappdbg.process import Process
|
|
187
187
|
|
|
188
188
|
def __load_Thread_class(self):
|
|
189
|
-
global Thread
|
|
189
|
+
global Thread # delayed import
|
|
190
190
|
if Thread is None:
|
|
191
191
|
from winappdbg.thread import Thread
|
|
192
192
|
|
|
@@ -201,7 +201,7 @@ class Window (object):
|
|
|
201
201
|
self.__process = Process(self.get_pid())
|
|
202
202
|
return self.__process
|
|
203
203
|
|
|
204
|
-
def set_process(self, process
|
|
204
|
+
def set_process(self, process=None):
|
|
205
205
|
"""
|
|
206
206
|
Manually set the parent process. Use with care!
|
|
207
207
|
|
|
@@ -213,7 +213,7 @@ class Window (object):
|
|
|
213
213
|
else:
|
|
214
214
|
self.__load_Process_class()
|
|
215
215
|
if not isinstance(process, Process):
|
|
216
|
-
msg
|
|
216
|
+
msg = "Parent process must be a Process instance, "
|
|
217
217
|
msg += "got %s instead" % type(process)
|
|
218
218
|
raise TypeError(msg)
|
|
219
219
|
self.dwProcessId = process.get_pid()
|
|
@@ -230,7 +230,7 @@ class Window (object):
|
|
|
230
230
|
self.__thread = Thread(self.get_tid())
|
|
231
231
|
return self.__thread
|
|
232
232
|
|
|
233
|
-
def set_thread(self, thread
|
|
233
|
+
def set_thread(self, thread=None):
|
|
234
234
|
"""
|
|
235
235
|
Manually set the thread process. Use with care!
|
|
236
236
|
|
|
@@ -242,7 +242,7 @@ class Window (object):
|
|
|
242
242
|
else:
|
|
243
243
|
self.__load_Thread_class()
|
|
244
244
|
if not isinstance(thread, Thread):
|
|
245
|
-
msg
|
|
245
|
+
msg = "Parent thread must be a Thread instance, "
|
|
246
246
|
msg += "got %s instead" % type(thread)
|
|
247
247
|
raise TypeError(msg)
|
|
248
248
|
self.dwThreadId = thread.get_tid()
|
|
@@ -255,12 +255,12 @@ class Window (object):
|
|
|
255
255
|
"""
|
|
256
256
|
window = Window(hWnd)
|
|
257
257
|
if window.get_pid() == self.get_pid():
|
|
258
|
-
window.set_process(
|
|
258
|
+
window.set_process(self.get_process())
|
|
259
259
|
if window.get_tid() == self.get_tid():
|
|
260
|
-
window.set_thread(
|
|
260
|
+
window.set_thread(self.get_thread())
|
|
261
261
|
return window
|
|
262
262
|
|
|
263
|
-
|
|
263
|
+
# ------------------------------------------------------------------------------
|
|
264
264
|
|
|
265
265
|
def get_classname(self):
|
|
266
266
|
"""
|
|
@@ -269,7 +269,7 @@ class Window (object):
|
|
|
269
269
|
|
|
270
270
|
@raise WindowsError: An error occured while processing this request.
|
|
271
271
|
"""
|
|
272
|
-
return win32.GetClassName(
|
|
272
|
+
return win32.GetClassName(self.get_handle())
|
|
273
273
|
|
|
274
274
|
def get_style(self):
|
|
275
275
|
"""
|
|
@@ -278,7 +278,7 @@ class Window (object):
|
|
|
278
278
|
|
|
279
279
|
@raise WindowsError: An error occured while processing this request.
|
|
280
280
|
"""
|
|
281
|
-
return win32.GetWindowLongPtr(
|
|
281
|
+
return win32.GetWindowLongPtr(self.get_handle(), win32.GWL_STYLE)
|
|
282
282
|
|
|
283
283
|
def get_extended_style(self):
|
|
284
284
|
"""
|
|
@@ -287,7 +287,7 @@ class Window (object):
|
|
|
287
287
|
|
|
288
288
|
@raise WindowsError: An error occured while processing this request.
|
|
289
289
|
"""
|
|
290
|
-
return win32.GetWindowLongPtr(
|
|
290
|
+
return win32.GetWindowLongPtr(self.get_handle(), win32.GWL_EXSTYLE)
|
|
291
291
|
|
|
292
292
|
def get_text(self):
|
|
293
293
|
"""
|
|
@@ -296,7 +296,7 @@ class Window (object):
|
|
|
296
296
|
@return: Window text (caption) on success, C{None} on error.
|
|
297
297
|
"""
|
|
298
298
|
try:
|
|
299
|
-
return win32.GetWindowText(
|
|
299
|
+
return win32.GetWindowText(self.get_handle())
|
|
300
300
|
except WindowsError:
|
|
301
301
|
return None
|
|
302
302
|
|
|
@@ -311,7 +311,7 @@ class Window (object):
|
|
|
311
311
|
|
|
312
312
|
@raise WindowsError: An error occured while processing this request.
|
|
313
313
|
"""
|
|
314
|
-
win32.SetWindowText(
|
|
314
|
+
win32.SetWindowText(self.get_handle(), text)
|
|
315
315
|
|
|
316
316
|
def get_placement(self):
|
|
317
317
|
"""
|
|
@@ -324,7 +324,7 @@ class Window (object):
|
|
|
324
324
|
|
|
325
325
|
@raise WindowsError: An error occured while processing this request.
|
|
326
326
|
"""
|
|
327
|
-
return win32.GetWindowPlacement(
|
|
327
|
+
return win32.GetWindowPlacement(self.get_handle())
|
|
328
328
|
|
|
329
329
|
def set_placement(self, placement):
|
|
330
330
|
"""
|
|
@@ -337,7 +337,7 @@ class Window (object):
|
|
|
337
337
|
|
|
338
338
|
@raise WindowsError: An error occured while processing this request.
|
|
339
339
|
"""
|
|
340
|
-
win32.SetWindowPlacement(
|
|
340
|
+
win32.SetWindowPlacement(self.get_handle(), placement)
|
|
341
341
|
|
|
342
342
|
def get_screen_rect(self):
|
|
343
343
|
"""
|
|
@@ -348,7 +348,7 @@ class Window (object):
|
|
|
348
348
|
|
|
349
349
|
@raise WindowsError: An error occured while processing this request.
|
|
350
350
|
"""
|
|
351
|
-
return win32.GetWindowRect(
|
|
351
|
+
return win32.GetWindowRect(self.get_handle())
|
|
352
352
|
|
|
353
353
|
def get_client_rect(self):
|
|
354
354
|
"""
|
|
@@ -359,8 +359,8 @@ class Window (object):
|
|
|
359
359
|
|
|
360
360
|
@raise WindowsError: An error occured while processing this request.
|
|
361
361
|
"""
|
|
362
|
-
cr = win32.GetClientRect(
|
|
363
|
-
cr.left, cr.top
|
|
362
|
+
cr = win32.GetClientRect(self.get_handle())
|
|
363
|
+
cr.left, cr.top = self.client_to_screen(cr.left, cr.top)
|
|
364
364
|
cr.right, cr.bottom = self.client_to_screen(cr.right, cr.bottom)
|
|
365
365
|
return cr
|
|
366
366
|
|
|
@@ -376,7 +376,7 @@ class Window (object):
|
|
|
376
376
|
text = property(get_text, set_text, doc="")
|
|
377
377
|
placement = property(get_placement, set_placement, doc="")
|
|
378
378
|
|
|
379
|
-
|
|
379
|
+
# ------------------------------------------------------------------------------
|
|
380
380
|
|
|
381
381
|
def client_to_screen(self, x, y):
|
|
382
382
|
"""
|
|
@@ -397,7 +397,7 @@ class Window (object):
|
|
|
397
397
|
|
|
398
398
|
@raise WindowsError: An error occured while processing this request.
|
|
399
399
|
"""
|
|
400
|
-
return tuple(
|
|
400
|
+
return tuple(win32.ClientToScreen(self.get_handle(), (x, y)))
|
|
401
401
|
|
|
402
402
|
def screen_to_client(self, x, y):
|
|
403
403
|
"""
|
|
@@ -418,9 +418,9 @@ class Window (object):
|
|
|
418
418
|
|
|
419
419
|
@raise WindowsError: An error occured while processing this request.
|
|
420
420
|
"""
|
|
421
|
-
return tuple(
|
|
421
|
+
return tuple(win32.ScreenToClient(self.get_handle(), (x, y)))
|
|
422
422
|
|
|
423
|
-
|
|
423
|
+
# ------------------------------------------------------------------------------
|
|
424
424
|
|
|
425
425
|
def get_parent(self):
|
|
426
426
|
"""
|
|
@@ -429,7 +429,7 @@ class Window (object):
|
|
|
429
429
|
@return: Parent window. Returns C{None} if the window has no parent.
|
|
430
430
|
@raise WindowsError: An error occured while processing this request.
|
|
431
431
|
"""
|
|
432
|
-
hWnd = win32.GetParent(
|
|
432
|
+
hWnd = win32.GetParent(self.get_handle())
|
|
433
433
|
if hWnd:
|
|
434
434
|
return self.__get_window(hWnd)
|
|
435
435
|
|
|
@@ -440,10 +440,7 @@ class Window (object):
|
|
|
440
440
|
@return: List of child windows.
|
|
441
441
|
@raise WindowsError: An error occured while processing this request.
|
|
442
442
|
"""
|
|
443
|
-
return [
|
|
444
|
-
self.__get_window(hWnd) \
|
|
445
|
-
for hWnd in win32.EnumChildWindows( self.get_handle() )
|
|
446
|
-
]
|
|
443
|
+
return [self.__get_window(hWnd) for hWnd in win32.EnumChildWindows(self.get_handle())]
|
|
447
444
|
|
|
448
445
|
def get_tree(self):
|
|
449
446
|
"""
|
|
@@ -454,7 +451,7 @@ class Window (object):
|
|
|
454
451
|
"""
|
|
455
452
|
subtree = dict()
|
|
456
453
|
for aWindow in self.get_children():
|
|
457
|
-
subtree[
|
|
454
|
+
subtree[aWindow] = aWindow.get_tree()
|
|
458
455
|
return subtree
|
|
459
456
|
|
|
460
457
|
def get_root(self):
|
|
@@ -466,13 +463,13 @@ class Window (object):
|
|
|
466
463
|
If this window is already a top-level window, returns itself.
|
|
467
464
|
@raise WindowsError: An error occured while processing this request.
|
|
468
465
|
"""
|
|
469
|
-
hWnd
|
|
470
|
-
history
|
|
466
|
+
hWnd = self.get_handle()
|
|
467
|
+
history = set()
|
|
471
468
|
hPrevWnd = hWnd
|
|
472
469
|
while hWnd and hWnd not in history:
|
|
473
470
|
history.add(hWnd)
|
|
474
471
|
hPrevWnd = hWnd
|
|
475
|
-
hWnd
|
|
472
|
+
hWnd = win32.GetParent(hWnd)
|
|
476
473
|
if hWnd in history:
|
|
477
474
|
# See: https://docs.google.com/View?id=dfqd62nk_228h28szgz
|
|
478
475
|
return self
|
|
@@ -480,7 +477,7 @@ class Window (object):
|
|
|
480
477
|
return self.__get_window(hPrevWnd)
|
|
481
478
|
return self
|
|
482
479
|
|
|
483
|
-
def get_child_at(self, x, y, bAllowTransparency
|
|
480
|
+
def get_child_at(self, x, y, bAllowTransparency=True):
|
|
484
481
|
"""
|
|
485
482
|
Get the child window located at the given coordinates. If no such
|
|
486
483
|
window exists an exception is raised.
|
|
@@ -504,23 +501,23 @@ class Window (object):
|
|
|
504
501
|
"""
|
|
505
502
|
try:
|
|
506
503
|
if bAllowTransparency:
|
|
507
|
-
hWnd = win32.RealChildWindowFromPoint(
|
|
504
|
+
hWnd = win32.RealChildWindowFromPoint(self.get_handle(), (x, y))
|
|
508
505
|
else:
|
|
509
|
-
hWnd = win32.ChildWindowFromPoint(
|
|
506
|
+
hWnd = win32.ChildWindowFromPoint(self.get_handle(), (x, y))
|
|
510
507
|
if hWnd:
|
|
511
508
|
return self.__get_window(hWnd)
|
|
512
509
|
except WindowsError:
|
|
513
510
|
pass
|
|
514
511
|
return None
|
|
515
512
|
|
|
516
|
-
|
|
513
|
+
# ------------------------------------------------------------------------------
|
|
517
514
|
|
|
518
515
|
def is_valid(self):
|
|
519
516
|
"""
|
|
520
517
|
@rtype: bool
|
|
521
518
|
@return: C{True} if the window handle is still valid.
|
|
522
519
|
"""
|
|
523
|
-
return win32.IsWindow(
|
|
520
|
+
return win32.IsWindow(self.get_handle())
|
|
524
521
|
|
|
525
522
|
def is_visible(self):
|
|
526
523
|
"""
|
|
@@ -528,7 +525,7 @@ class Window (object):
|
|
|
528
525
|
@rtype: bool
|
|
529
526
|
@return: C{True} if the window is in a visible state.
|
|
530
527
|
"""
|
|
531
|
-
return win32.IsWindowVisible(
|
|
528
|
+
return win32.IsWindowVisible(self.get_handle())
|
|
532
529
|
|
|
533
530
|
def is_enabled(self):
|
|
534
531
|
"""
|
|
@@ -536,7 +533,7 @@ class Window (object):
|
|
|
536
533
|
@rtype: bool
|
|
537
534
|
@return: C{True} if the window is in an enabled state.
|
|
538
535
|
"""
|
|
539
|
-
return win32.IsWindowEnabled(
|
|
536
|
+
return win32.IsWindowEnabled(self.get_handle())
|
|
540
537
|
|
|
541
538
|
def is_maximized(self):
|
|
542
539
|
"""
|
|
@@ -544,7 +541,7 @@ class Window (object):
|
|
|
544
541
|
@rtype: bool
|
|
545
542
|
@return: C{True} if the window is maximized.
|
|
546
543
|
"""
|
|
547
|
-
return win32.IsZoomed(
|
|
544
|
+
return win32.IsZoomed(self.get_handle())
|
|
548
545
|
|
|
549
546
|
def is_minimized(self):
|
|
550
547
|
"""
|
|
@@ -552,7 +549,7 @@ class Window (object):
|
|
|
552
549
|
@rtype: bool
|
|
553
550
|
@return: C{True} if the window is minimized.
|
|
554
551
|
"""
|
|
555
|
-
return win32.IsIconic(
|
|
552
|
+
return win32.IsIconic(self.get_handle())
|
|
556
553
|
|
|
557
554
|
def is_child(self):
|
|
558
555
|
"""
|
|
@@ -560,12 +557,12 @@ class Window (object):
|
|
|
560
557
|
@rtype: bool
|
|
561
558
|
@return: C{True} if the window is a child window.
|
|
562
559
|
"""
|
|
563
|
-
return win32.IsChild(
|
|
560
|
+
return win32.IsChild(self.get_handle())
|
|
564
561
|
|
|
565
562
|
is_zoomed = is_maximized
|
|
566
563
|
is_iconic = is_minimized
|
|
567
564
|
|
|
568
|
-
|
|
565
|
+
# ------------------------------------------------------------------------------
|
|
569
566
|
|
|
570
567
|
def enable(self):
|
|
571
568
|
"""
|
|
@@ -575,7 +572,7 @@ class Window (object):
|
|
|
575
572
|
|
|
576
573
|
@raise WindowsError: An error occured while processing this request.
|
|
577
574
|
"""
|
|
578
|
-
win32.EnableWindow(
|
|
575
|
+
win32.EnableWindow(self.get_handle(), True)
|
|
579
576
|
|
|
580
577
|
def disable(self):
|
|
581
578
|
"""
|
|
@@ -585,9 +582,9 @@ class Window (object):
|
|
|
585
582
|
|
|
586
583
|
@raise WindowsError: An error occured while processing this request.
|
|
587
584
|
"""
|
|
588
|
-
win32.EnableWindow(
|
|
585
|
+
win32.EnableWindow(self.get_handle(), False)
|
|
589
586
|
|
|
590
|
-
def show(self, bAsync
|
|
587
|
+
def show(self, bAsync=True):
|
|
591
588
|
"""
|
|
592
589
|
Make the window visible.
|
|
593
590
|
|
|
@@ -599,11 +596,11 @@ class Window (object):
|
|
|
599
596
|
@raise WindowsError: An error occured while processing this request.
|
|
600
597
|
"""
|
|
601
598
|
if bAsync:
|
|
602
|
-
win32.ShowWindowAsync(
|
|
599
|
+
win32.ShowWindowAsync(self.get_handle(), win32.SW_SHOW)
|
|
603
600
|
else:
|
|
604
|
-
win32.ShowWindow(
|
|
601
|
+
win32.ShowWindow(self.get_handle(), win32.SW_SHOW)
|
|
605
602
|
|
|
606
|
-
def hide(self, bAsync
|
|
603
|
+
def hide(self, bAsync=True):
|
|
607
604
|
"""
|
|
608
605
|
Make the window invisible.
|
|
609
606
|
|
|
@@ -615,11 +612,11 @@ class Window (object):
|
|
|
615
612
|
@raise WindowsError: An error occured while processing this request.
|
|
616
613
|
"""
|
|
617
614
|
if bAsync:
|
|
618
|
-
win32.ShowWindowAsync(
|
|
615
|
+
win32.ShowWindowAsync(self.get_handle(), win32.SW_HIDE)
|
|
619
616
|
else:
|
|
620
|
-
win32.ShowWindow(
|
|
617
|
+
win32.ShowWindow(self.get_handle(), win32.SW_HIDE)
|
|
621
618
|
|
|
622
|
-
def maximize(self, bAsync
|
|
619
|
+
def maximize(self, bAsync=True):
|
|
623
620
|
"""
|
|
624
621
|
Maximize the window.
|
|
625
622
|
|
|
@@ -631,11 +628,11 @@ class Window (object):
|
|
|
631
628
|
@raise WindowsError: An error occured while processing this request.
|
|
632
629
|
"""
|
|
633
630
|
if bAsync:
|
|
634
|
-
win32.ShowWindowAsync(
|
|
631
|
+
win32.ShowWindowAsync(self.get_handle(), win32.SW_MAXIMIZE)
|
|
635
632
|
else:
|
|
636
|
-
win32.ShowWindow(
|
|
633
|
+
win32.ShowWindow(self.get_handle(), win32.SW_MAXIMIZE)
|
|
637
634
|
|
|
638
|
-
def minimize(self, bAsync
|
|
635
|
+
def minimize(self, bAsync=True):
|
|
639
636
|
"""
|
|
640
637
|
Minimize the window.
|
|
641
638
|
|
|
@@ -647,11 +644,11 @@ class Window (object):
|
|
|
647
644
|
@raise WindowsError: An error occured while processing this request.
|
|
648
645
|
"""
|
|
649
646
|
if bAsync:
|
|
650
|
-
win32.ShowWindowAsync(
|
|
647
|
+
win32.ShowWindowAsync(self.get_handle(), win32.SW_MINIMIZE)
|
|
651
648
|
else:
|
|
652
|
-
win32.ShowWindow(
|
|
649
|
+
win32.ShowWindow(self.get_handle(), win32.SW_MINIMIZE)
|
|
653
650
|
|
|
654
|
-
def restore(self, bAsync
|
|
651
|
+
def restore(self, bAsync=True):
|
|
655
652
|
"""
|
|
656
653
|
Unmaximize and unminimize the window.
|
|
657
654
|
|
|
@@ -663,12 +660,11 @@ class Window (object):
|
|
|
663
660
|
@raise WindowsError: An error occured while processing this request.
|
|
664
661
|
"""
|
|
665
662
|
if bAsync:
|
|
666
|
-
win32.ShowWindowAsync(
|
|
663
|
+
win32.ShowWindowAsync(self.get_handle(), win32.SW_RESTORE)
|
|
667
664
|
else:
|
|
668
|
-
win32.ShowWindow(
|
|
665
|
+
win32.ShowWindow(self.get_handle(), win32.SW_RESTORE)
|
|
669
666
|
|
|
670
|
-
def move(self, x
|
|
671
|
-
bRepaint = True):
|
|
667
|
+
def move(self, x=None, y=None, width=None, height=None, bRepaint=True):
|
|
672
668
|
"""
|
|
673
669
|
Moves and/or resizes the window.
|
|
674
670
|
|
|
@@ -714,7 +710,7 @@ class Window (object):
|
|
|
714
710
|
"""
|
|
715
711
|
self.post(win32.WM_QUIT)
|
|
716
712
|
|
|
717
|
-
def send(self, uMsg, wParam
|
|
713
|
+
def send(self, uMsg, wParam=None, lParam=None, dwTimeout=None):
|
|
718
714
|
"""
|
|
719
715
|
Send a low-level window message syncronically.
|
|
720
716
|
|
|
@@ -737,11 +733,9 @@ class Window (object):
|
|
|
737
733
|
"""
|
|
738
734
|
if dwTimeout is None:
|
|
739
735
|
return win32.SendMessage(self.get_handle(), uMsg, wParam, lParam)
|
|
740
|
-
return win32.SendMessageTimeout(
|
|
741
|
-
self.get_handle(), uMsg, wParam, lParam,
|
|
742
|
-
win32.SMTO_ABORTIFHUNG | win32.SMTO_ERRORONEXIT, dwTimeout)
|
|
736
|
+
return win32.SendMessageTimeout(self.get_handle(), uMsg, wParam, lParam, win32.SMTO_ABORTIFHUNG | win32.SMTO_ERRORONEXIT, dwTimeout)
|
|
743
737
|
|
|
744
|
-
def post(self, uMsg, wParam
|
|
738
|
+
def post(self, uMsg, wParam=None, lParam=None):
|
|
745
739
|
"""
|
|
746
740
|
Post a low-level window message asyncronically.
|
|
747
741
|
|
|
@@ -41,7 +41,6 @@
|
|
|
41
41
|
|
|
42
42
|
// Access to std::cout and std::endl
|
|
43
43
|
#include <iostream>
|
|
44
|
-
#include <mutex>
|
|
45
44
|
// DECLDIR will perform an export for us
|
|
46
45
|
#define DLL_EXPORT
|
|
47
46
|
|
|
@@ -108,9 +107,9 @@ struct InitializeThreadingInfo {
|
|
|
108
107
|
PyImport_ImportModule* pyImportMod;
|
|
109
108
|
PyEval_Lock* initThreads;
|
|
110
109
|
|
|
111
|
-
|
|
112
|
-
HANDLE initedEvent; // Note: only access with
|
|
113
|
-
bool completed; // Note: only access with
|
|
110
|
+
CRITICAL_SECTION cs;
|
|
111
|
+
HANDLE initedEvent; // Note: only access with cs locked (and check if not already nullptr).
|
|
112
|
+
bool completed; // Note: only access with cs locked
|
|
114
113
|
};
|
|
115
114
|
|
|
116
115
|
|
|
@@ -122,12 +121,12 @@ int AttachCallback(void *voidInitializeThreadingInfo) {
|
|
|
122
121
|
initializeThreadingInfo->initThreads(); // Note: calling multiple times is ok.
|
|
123
122
|
initializeThreadingInfo->pyImportMod("threading");
|
|
124
123
|
|
|
125
|
-
initializeThreadingInfo->
|
|
124
|
+
EnterCriticalSection(&initializeThreadingInfo->cs);
|
|
125
|
+
initializeThreadingInfo->completed = true;
|
|
126
126
|
if(initializeThreadingInfo->initedEvent != nullptr) {
|
|
127
127
|
SetEvent(initializeThreadingInfo->initedEvent);
|
|
128
128
|
}
|
|
129
|
-
initializeThreadingInfo->
|
|
130
|
-
initializeThreadingInfo->mutex.unlock();
|
|
129
|
+
LeaveCriticalSection(&initializeThreadingInfo->cs);
|
|
131
130
|
return 0;
|
|
132
131
|
}
|
|
133
132
|
|
|
@@ -311,6 +310,11 @@ extern "C"
|
|
|
311
310
|
// Either _PyThreadState_Current or _PyThreadState_UncheckedGet are required
|
|
312
311
|
DEFINE_PROC_NO_CHECK(curPythonThread, PyThreadState**, "_PyThreadState_Current", -220); // optional
|
|
313
312
|
DEFINE_PROC_NO_CHECK(getPythonThread, _PyThreadState_UncheckedGet*, "_PyThreadState_UncheckedGet", -230); // optional
|
|
313
|
+
DEFINE_PROC_NO_CHECK(getPythonThread13, _PyThreadState_GetCurrent*, "_PyThreadState_GetCurrent", -231); // optional
|
|
314
|
+
if (getPythonThread == nullptr && getPythonThread13 != nullptr) {
|
|
315
|
+
std::cout << "Using Python 3.13 or later, using _PyThreadState_GetCurrent" << std::endl << std::flush;
|
|
316
|
+
getPythonThread = getPythonThread13;
|
|
317
|
+
}
|
|
314
318
|
|
|
315
319
|
if (curPythonThread == nullptr && getPythonThread == nullptr) {
|
|
316
320
|
// we're missing some APIs, we cannot attach.
|
|
@@ -318,6 +322,7 @@ extern "C"
|
|
|
318
322
|
return -240;
|
|
319
323
|
}
|
|
320
324
|
|
|
325
|
+
|
|
321
326
|
// Either _Py_CheckInterval or _PyEval_[GS]etSwitchInterval are useful, but not required
|
|
322
327
|
DEFINE_PROC_NO_CHECK(intervalCheck, int*, "_Py_CheckInterval", -250); // optional
|
|
323
328
|
DEFINE_PROC_NO_CHECK(getSwitchInterval, _PyEval_GetSwitchInterval*, "_PyEval_GetSwitchInterval", -260); // optional
|
|
@@ -368,6 +373,8 @@ extern "C"
|
|
|
368
373
|
initializeThreadingInfo->pyImportMod = pyImportMod;
|
|
369
374
|
initializeThreadingInfo->initThreads = initThreads;
|
|
370
375
|
initializeThreadingInfo->initedEvent = CreateEvent(nullptr, TRUE, FALSE, nullptr);
|
|
376
|
+
InitializeCriticalSection(&initializeThreadingInfo->cs);
|
|
377
|
+
|
|
371
378
|
|
|
372
379
|
// Add the call to initialize threading.
|
|
373
380
|
addPendingCall(&AttachCallback, initializeThreadingInfo);
|
|
@@ -375,15 +382,16 @@ extern "C"
|
|
|
375
382
|
::WaitForSingleObject(initializeThreadingInfo->initedEvent, 5000);
|
|
376
383
|
|
|
377
384
|
// Whether this completed or not, release the event handle as we won't use it anymore.
|
|
378
|
-
initializeThreadingInfo->
|
|
385
|
+
EnterCriticalSection(&initializeThreadingInfo->cs);
|
|
379
386
|
CloseHandle(initializeThreadingInfo->initedEvent);
|
|
380
387
|
bool completed = initializeThreadingInfo->completed;
|
|
381
388
|
initializeThreadingInfo->initedEvent = nullptr;
|
|
382
|
-
initializeThreadingInfo->
|
|
389
|
+
LeaveCriticalSection(&initializeThreadingInfo->cs);
|
|
383
390
|
|
|
384
391
|
if(completed) {
|
|
385
392
|
// Note that this structure will leak if addPendingCall did not complete in the timeout
|
|
386
393
|
// (we can't release now because it's possible that it'll still be called).
|
|
394
|
+
DeleteCriticalSection(&initializeThreadingInfo->cs);
|
|
387
395
|
delete initializeThreadingInfo;
|
|
388
396
|
if (showDebugInfo) {
|
|
389
397
|
std::cout << "addPendingCall to initialize threads/import threading completed. " << std::endl << std::flush;
|
|
@@ -7,7 +7,7 @@ setlocal
|
|
|
7
7
|
|
|
8
8
|
@set VSWHERE=%ProgramFiles(x86)%\Microsoft Visual Studio\Installer\vswhere.exe
|
|
9
9
|
@echo Using vswhere at %VSWHERE%
|
|
10
|
-
@for /f "usebackq tokens=*" %%i in (`"%VSWHERE%" -latest -products * -requires Microsoft.VisualStudio.Component.VC.Tools.x86.x64 -property installationPath`) do set VSDIR=%%i
|
|
10
|
+
@for /f "usebackq tokens=*" %%i in (`"%VSWHERE%" -prerelease -latest -products * -requires Microsoft.VisualStudio.Component.VC.Tools.x86.x64 -property installationPath`) do set VSDIR=%%i
|
|
11
11
|
@echo Using Visual C++ at %VSDIR%
|
|
12
12
|
|
|
13
13
|
call "%VSDIR%\VC\Auxiliary\Build\vcvarsall.bat" x86 -vcvars_spectre_libs=spectre
|