debugpy 1.8.19__tar.gz → 1.8.21__tar.gz

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.
Files changed (296) hide show
  1. {debugpy-1.8.19/src/debugpy.egg-info → debugpy-1.8.21}/PKG-INFO +1 -1
  2. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy/_vendored/pydevd/_pydev_bundle/_pydev_calltip_util.py +1 -0
  3. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy/_vendored/pydevd/_pydev_bundle/fsnotify/__init__.py +1 -0
  4. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy/_vendored/pydevd/_pydev_bundle/pydev_ipython_console_011.py +23 -8
  5. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy/_vendored/pydevd/_pydev_bundle/pydev_is_thread_alive.py +1 -1
  6. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy/_vendored/pydevd/_pydev_bundle/pydev_monkey.py +98 -82
  7. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_additional_thread_info_regular.py +1 -1
  8. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_api.py +3 -0
  9. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_collect_bytecode_info.py +21 -10
  10. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_comm.py +18 -16
  11. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_console.py +2 -2
  12. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_constants.py +1 -0
  13. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_cython.c +17548 -21173
  14. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_cython.pyx +3 -2
  15. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_frame.py +3 -1
  16. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_frame_utils.py +2 -2
  17. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_process_net_command_json.py +75 -5
  18. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_reload.py +5 -2
  19. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_resolver.py +2 -0
  20. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_runpy.py +1 -1
  21. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_suspended_frames.py +14 -3
  22. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_thread_lifecycle.py +12 -3
  23. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_traceproperty.py +2 -2
  24. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_vars.py +16 -16
  25. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/pydevd_frame_evaluator.c +8386 -8968
  26. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode/bytecode.py +1 -3
  27. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode/cfg.py +2 -2
  28. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode/concrete.py +3 -3
  29. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode/flags.py +2 -4
  30. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode/instr.py +9 -9
  31. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode/peephole_opt.py +1 -0
  32. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode/tests/test_cfg.py +2 -2
  33. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy/_vendored/pydevd/_pydevd_sys_monitoring/_pydevd_sys_monitoring.py +50 -7
  34. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy/_vendored/pydevd/_pydevd_sys_monitoring/_pydevd_sys_monitoring_cython.c +17158 -20248
  35. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy/_vendored/pydevd/_pydevd_sys_monitoring/_pydevd_sys_monitoring_cython.pyx +82 -53
  36. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy/_vendored/pydevd/pydev_coverage.py +2 -2
  37. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy/_vendored/pydevd/pydev_ipython/matplotlibtools.py +5 -10
  38. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy/_vendored/pydevd/pydev_ipython/qt_loaders.py +2 -2
  39. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy/_vendored/pydevd/pydev_sitecustomize/sitecustomize.py +9 -8
  40. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy/_vendored/pydevd/pydevd.py +62 -16
  41. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/add_code_to_python_process.py +1 -0
  42. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/linux_and_mac/compile_linux.sh +1 -1
  43. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/breakpoint.py +10 -10
  44. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/debug.py +3 -3
  45. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/disasm.py +1 -3
  46. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/event.py +3 -3
  47. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/interactive.py +5 -5
  48. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/process.py +11 -11
  49. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/registry.py +1 -1
  50. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/sql.py +3 -3
  51. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/system.py +1 -1
  52. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/win32/ntdll.py +1 -1
  53. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/windows/compile_windows.bat +6 -6
  54. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy/_vendored/pydevd/pydevd_file_utils.py +12 -10
  55. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy/_vendored/pydevd/pydevd_plugins/django_debug.py +1 -1
  56. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy/_vendored/pydevd/setup_pydevd_cython.py +30 -0
  57. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy/_version.py +3 -3
  58. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy/server/cli.py +34 -0
  59. {debugpy-1.8.19 → debugpy-1.8.21/src/debugpy.egg-info}/PKG-INFO +1 -1
  60. {debugpy-1.8.19 → debugpy-1.8.21}/DESCRIPTION.md +0 -0
  61. {debugpy-1.8.19 → debugpy-1.8.21}/LICENSE +0 -0
  62. {debugpy-1.8.19 → debugpy-1.8.21}/MANIFEST.in +0 -0
  63. {debugpy-1.8.19 → debugpy-1.8.21}/README.md +0 -0
  64. {debugpy-1.8.19 → debugpy-1.8.21}/pyproject.toml +0 -0
  65. {debugpy-1.8.19 → debugpy-1.8.21}/setup.cfg +0 -0
  66. {debugpy-1.8.19 → debugpy-1.8.21}/setup.py +0 -0
  67. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy/ThirdPartyNotices.txt +0 -0
  68. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy/__init__.py +0 -0
  69. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy/__main__.py +0 -0
  70. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy/_vendored/__init__.py +0 -0
  71. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy/_vendored/_pydevd_packaging.py +0 -0
  72. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy/_vendored/_util.py +0 -0
  73. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy/_vendored/force_pydevd.py +0 -0
  74. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy/_vendored/pydevd/_pydev_bundle/__init__.py +0 -0
  75. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy/_vendored/pydevd/_pydev_bundle/_pydev_completer.py +0 -0
  76. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy/_vendored/pydevd/_pydev_bundle/_pydev_execfile.py +0 -0
  77. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy/_vendored/pydevd/_pydev_bundle/_pydev_filesystem_encoding.py +0 -0
  78. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy/_vendored/pydevd/_pydev_bundle/_pydev_getopt.py +0 -0
  79. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy/_vendored/pydevd/_pydev_bundle/_pydev_imports_tipper.py +0 -0
  80. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy/_vendored/pydevd/_pydev_bundle/_pydev_jy_imports_tipper.py +0 -0
  81. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy/_vendored/pydevd/_pydev_bundle/_pydev_log.py +0 -0
  82. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy/_vendored/pydevd/_pydev_bundle/_pydev_saved_modules.py +0 -0
  83. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy/_vendored/pydevd/_pydev_bundle/_pydev_sys_patch.py +0 -0
  84. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy/_vendored/pydevd/_pydev_bundle/_pydev_tipper_common.py +0 -0
  85. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy/_vendored/pydevd/_pydev_bundle/pydev_console_utils.py +0 -0
  86. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy/_vendored/pydevd/_pydev_bundle/pydev_import_hook.py +0 -0
  87. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy/_vendored/pydevd/_pydev_bundle/pydev_imports.py +0 -0
  88. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy/_vendored/pydevd/_pydev_bundle/pydev_ipython_console.py +0 -0
  89. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy/_vendored/pydevd/_pydev_bundle/pydev_localhost.py +0 -0
  90. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy/_vendored/pydevd/_pydev_bundle/pydev_log.py +0 -0
  91. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy/_vendored/pydevd/_pydev_bundle/pydev_monkey_qt.py +0 -0
  92. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy/_vendored/pydevd/_pydev_bundle/pydev_override.py +0 -0
  93. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy/_vendored/pydevd/_pydev_bundle/pydev_umd.py +0 -0
  94. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy/_vendored/pydevd/_pydev_bundle/pydev_versioncheck.py +0 -0
  95. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy/_vendored/pydevd/_pydev_runfiles/__init__.py +0 -0
  96. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy/_vendored/pydevd/_pydev_runfiles/pydev_runfiles.py +0 -0
  97. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy/_vendored/pydevd/_pydev_runfiles/pydev_runfiles_coverage.py +0 -0
  98. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy/_vendored/pydevd/_pydev_runfiles/pydev_runfiles_nose.py +0 -0
  99. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy/_vendored/pydevd/_pydev_runfiles/pydev_runfiles_parallel.py +0 -0
  100. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy/_vendored/pydevd/_pydev_runfiles/pydev_runfiles_parallel_client.py +0 -0
  101. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy/_vendored/pydevd/_pydev_runfiles/pydev_runfiles_pytest2.py +0 -0
  102. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy/_vendored/pydevd/_pydev_runfiles/pydev_runfiles_unittest.py +0 -0
  103. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy/_vendored/pydevd/_pydev_runfiles/pydev_runfiles_xml_rpc.py +0 -0
  104. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy/_vendored/pydevd/_pydevd_bundle/__init__.py +0 -0
  105. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy/_vendored/pydevd/_pydevd_bundle/_debug_adapter/__init__.py +0 -0
  106. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy/_vendored/pydevd/_pydevd_bundle/_debug_adapter/__main__pydevd_gen_debug_adapter_protocol.py +0 -0
  107. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy/_vendored/pydevd/_pydevd_bundle/_debug_adapter/debugProtocol.json +0 -0
  108. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy/_vendored/pydevd/_pydevd_bundle/_debug_adapter/debugProtocolCustom.json +0 -0
  109. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy/_vendored/pydevd/_pydevd_bundle/_debug_adapter/pydevd_base_schema.py +0 -0
  110. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy/_vendored/pydevd/_pydevd_bundle/_debug_adapter/pydevd_schema.py +0 -0
  111. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy/_vendored/pydevd/_pydevd_bundle/_debug_adapter/pydevd_schema_log.py +0 -0
  112. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevconsole_code.py +0 -0
  113. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_additional_thread_info.py +0 -0
  114. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_breakpoints.py +0 -0
  115. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_bytecode_utils.py +0 -0
  116. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_bytecode_utils_py311.py +0 -0
  117. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_code_to_source.py +0 -0
  118. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_comm_constants.py +0 -0
  119. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_command_line_handling.py +0 -0
  120. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_concurrency_analyser/__init__.py +0 -0
  121. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_concurrency_analyser/pydevd_concurrency_logger.py +0 -0
  122. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_concurrency_analyser/pydevd_thread_wrappers.py +0 -0
  123. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_custom_frames.py +0 -0
  124. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_cython.pxd +0 -0
  125. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_cython_wrapper.py +0 -0
  126. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_daemon_thread.py +0 -0
  127. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_defaults.py +0 -0
  128. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_dont_trace.py +0 -0
  129. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_dont_trace_files.py +0 -0
  130. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_exec2.py +0 -0
  131. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_extension_api.py +0 -0
  132. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_extension_utils.py +0 -0
  133. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_filtering.py +0 -0
  134. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_gevent_integration.py +0 -0
  135. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_import_class.py +0 -0
  136. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_io.py +0 -0
  137. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_json_debug_options.py +0 -0
  138. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_net_command.py +0 -0
  139. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_net_command_factory_json.py +0 -0
  140. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_net_command_factory_xml.py +0 -0
  141. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_plugin_utils.py +0 -0
  142. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_process_net_command.py +0 -0
  143. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_referrers.py +0 -0
  144. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_safe_repr.py +0 -0
  145. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_save_locals.py +0 -0
  146. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_signature.py +0 -0
  147. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_source_mapping.py +0 -0
  148. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_stackless.py +0 -0
  149. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_timeout.py +0 -0
  150. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_trace_dispatch.py +0 -0
  151. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_trace_dispatch_regular.py +0 -0
  152. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_utils.py +0 -0
  153. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_vm_type.py +0 -0
  154. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_xml.py +0 -0
  155. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/.gitignore +0 -0
  156. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/__init__.py +0 -0
  157. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/pydevd_frame_eval_cython_wrapper.py +0 -0
  158. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/pydevd_frame_eval_main.py +0 -0
  159. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/pydevd_frame_evaluator.pxd +0 -0
  160. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/pydevd_frame_evaluator.pyx +0 -0
  161. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/pydevd_frame_evaluator.template.pyx +0 -0
  162. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/pydevd_frame_tracing.py +0 -0
  163. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/pydevd_modify_bytecode.py +0 -0
  164. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/release_mem.h +0 -0
  165. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/README.txt +0 -0
  166. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/__init__.py +0 -0
  167. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode/__init__.py +0 -0
  168. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode/tests/__init__.py +0 -0
  169. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode/tests/test_bytecode.py +0 -0
  170. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode/tests/test_code.py +0 -0
  171. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode/tests/test_concrete.py +0 -0
  172. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode/tests/test_flags.py +0 -0
  173. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode/tests/test_instr.py +0 -0
  174. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode/tests/test_misc.py +0 -0
  175. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode/tests/test_peephole_opt.py +0 -0
  176. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode/tests/util_annotation.py +0 -0
  177. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/pydevd_fix_code.py +0 -0
  178. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy/_vendored/pydevd/_pydevd_sys_monitoring/_pydevd_sys_monitoring_cython.pxd +0 -0
  179. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy/_vendored/pydevd/_pydevd_sys_monitoring/pydevd_sys_monitoring.py +0 -0
  180. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy/_vendored/pydevd/pydev_app_engine_debug_startup.py +0 -0
  181. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy/_vendored/pydevd/pydev_ipython/README +0 -0
  182. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy/_vendored/pydevd/pydev_ipython/__init__.py +0 -0
  183. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy/_vendored/pydevd/pydev_ipython/inputhook.py +0 -0
  184. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy/_vendored/pydevd/pydev_ipython/inputhookglut.py +0 -0
  185. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy/_vendored/pydevd/pydev_ipython/inputhookgtk.py +0 -0
  186. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy/_vendored/pydevd/pydev_ipython/inputhookgtk3.py +0 -0
  187. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy/_vendored/pydevd/pydev_ipython/inputhookpyglet.py +0 -0
  188. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy/_vendored/pydevd/pydev_ipython/inputhookqt4.py +0 -0
  189. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy/_vendored/pydevd/pydev_ipython/inputhookqt5.py +0 -0
  190. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy/_vendored/pydevd/pydev_ipython/inputhookqt6.py +0 -0
  191. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy/_vendored/pydevd/pydev_ipython/inputhooktk.py +0 -0
  192. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy/_vendored/pydevd/pydev_ipython/inputhookwx.py +0 -0
  193. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy/_vendored/pydevd/pydev_ipython/qt.py +0 -0
  194. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy/_vendored/pydevd/pydev_ipython/qt_for_kernel.py +0 -0
  195. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy/_vendored/pydevd/pydev_ipython/version.py +0 -0
  196. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy/_vendored/pydevd/pydev_pysrc.py +0 -0
  197. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy/_vendored/pydevd/pydev_run_in_console.py +0 -0
  198. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy/_vendored/pydevd/pydev_sitecustomize/__not_in_default_pythonpath.txt +0 -0
  199. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy/_vendored/pydevd/pydevconsole.py +0 -0
  200. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/README.txt +0 -0
  201. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/_always_live_program.py +0 -0
  202. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/_check.py +0 -0
  203. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/_test_attach_to_process.py +0 -0
  204. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/_test_attach_to_process_linux.py +0 -0
  205. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/attach_pydevd.py +0 -0
  206. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/attach_script.py +0 -0
  207. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/common/py_custom_pyeval_settrace.hpp +0 -0
  208. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/common/py_custom_pyeval_settrace_310.hpp +0 -0
  209. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/common/py_custom_pyeval_settrace_311.hpp +0 -0
  210. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/common/py_custom_pyeval_settrace_common.hpp +0 -0
  211. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/common/py_settrace.hpp +0 -0
  212. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/common/py_utils.hpp +0 -0
  213. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/common/py_version.hpp +0 -0
  214. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/common/python.h +0 -0
  215. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/common/ref_utils.hpp +0 -0
  216. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/linux_and_mac/.gitignore +0 -0
  217. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/linux_and_mac/attach.cpp +0 -0
  218. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/linux_and_mac/compile_mac.sh +0 -0
  219. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/linux_and_mac/compile_manylinux.cmd +0 -0
  220. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/linux_and_mac/lldb_prepare.py +0 -0
  221. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/__init__.py +0 -0
  222. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/compat.py +0 -0
  223. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/crash.py +0 -0
  224. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/module.py +0 -0
  225. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/search.py +0 -0
  226. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/textio.py +0 -0
  227. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/thread.py +0 -0
  228. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/util.py +0 -0
  229. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/win32/__init__.py +0 -0
  230. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/win32/advapi32.py +0 -0
  231. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/win32/context_amd64.py +0 -0
  232. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/win32/context_i386.py +0 -0
  233. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/win32/dbghelp.py +0 -0
  234. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/win32/defines.py +0 -0
  235. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/win32/gdi32.py +0 -0
  236. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/win32/kernel32.py +0 -0
  237. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/win32/peb_teb.py +0 -0
  238. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/win32/psapi.py +0 -0
  239. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/win32/shell32.py +0 -0
  240. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/win32/shlwapi.py +0 -0
  241. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/win32/user32.py +0 -0
  242. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/win32/version.py +0 -0
  243. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/win32/wtsapi32.py +0 -0
  244. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/window.py +0 -0
  245. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/windows/attach.cpp +0 -0
  246. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/windows/attach.h +0 -0
  247. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/windows/inject_dll.cpp +0 -0
  248. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/windows/py_win_helpers.hpp +0 -0
  249. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/windows/run_code_in_memory.hpp +0 -0
  250. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/windows/run_code_on_dllmain.cpp +0 -0
  251. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/windows/stdafx.cpp +0 -0
  252. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/windows/stdafx.h +0 -0
  253. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/windows/targetver.h +0 -0
  254. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy/_vendored/pydevd/pydevd_plugins/__init__.py +0 -0
  255. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy/_vendored/pydevd/pydevd_plugins/extensions/README.md +0 -0
  256. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy/_vendored/pydevd/pydevd_plugins/extensions/__init__.py +0 -0
  257. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy/_vendored/pydevd/pydevd_plugins/extensions/types/__init__.py +0 -0
  258. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy/_vendored/pydevd/pydevd_plugins/extensions/types/pydevd_helpers.py +0 -0
  259. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy/_vendored/pydevd/pydevd_plugins/extensions/types/pydevd_plugin_numpy_types.py +0 -0
  260. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy/_vendored/pydevd/pydevd_plugins/extensions/types/pydevd_plugin_pandas_types.py +0 -0
  261. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy/_vendored/pydevd/pydevd_plugins/extensions/types/pydevd_plugins_django_form_str.py +0 -0
  262. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy/_vendored/pydevd/pydevd_plugins/jinja2_debug.py +0 -0
  263. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy/_vendored/pydevd/pydevd_plugins/pydevd_line_validation.py +0 -0
  264. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy/_vendored/pydevd/pydevd_tracing.py +0 -0
  265. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy/adapter/__init__.py +0 -0
  266. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy/adapter/__main__.py +0 -0
  267. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy/adapter/clients.py +0 -0
  268. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy/adapter/components.py +0 -0
  269. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy/adapter/launchers.py +0 -0
  270. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy/adapter/servers.py +0 -0
  271. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy/adapter/sessions.py +0 -0
  272. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy/common/__init__.py +0 -0
  273. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy/common/json.py +0 -0
  274. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy/common/log.py +0 -0
  275. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy/common/messaging.py +0 -0
  276. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy/common/singleton.py +0 -0
  277. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy/common/sockets.py +0 -0
  278. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy/common/stacks.py +0 -0
  279. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy/common/timestamp.py +0 -0
  280. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy/common/util.py +0 -0
  281. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy/launcher/__init__.py +0 -0
  282. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy/launcher/__main__.py +0 -0
  283. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy/launcher/debuggee.py +0 -0
  284. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy/launcher/handlers.py +0 -0
  285. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy/launcher/output.py +0 -0
  286. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy/launcher/winapi.py +0 -0
  287. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy/public_api.py +0 -0
  288. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy/py.typed +0 -0
  289. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy/server/__init__.py +0 -0
  290. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy/server/api.py +0 -0
  291. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy/server/attach_pid_injected.py +0 -0
  292. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy.egg-info/SOURCES.txt +0 -0
  293. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy.egg-info/dependency_links.txt +0 -0
  294. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy.egg-info/entry_points.txt +0 -0
  295. {debugpy-1.8.19 → debugpy-1.8.21}/src/debugpy.egg-info/top_level.txt +0 -0
  296. {debugpy-1.8.19 → debugpy-1.8.21}/versioneer.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: debugpy
3
- Version: 1.8.19
3
+ Version: 1.8.21
4
4
  Summary: An implementation of the Debug Adapter Protocol for Python
5
5
  Home-page: https://aka.ms/debugpy
6
6
  Author: Microsoft Corporation
@@ -2,6 +2,7 @@
2
2
  License: Apache 2.0
3
3
  Author: Yuli Fitterman
4
4
  """
5
+
5
6
  import types
6
7
 
7
8
  from _pydevd_bundle.pydevd_constants import IS_JYTHON
@@ -37,6 +37,7 @@ Sample usage to track changes in a thread.
37
37
 
38
38
  Note: changes are only reported for files (added/modified/deleted), not directories.
39
39
  """
40
+
40
41
  import sys
41
42
  from os.path import basename
42
43
  from _pydev_bundle import pydev_log, _pydev_saved_modules
@@ -10,7 +10,7 @@
10
10
  # eg: Completing a magic when user typed it without the leading % causes the % to be inserted
11
11
  # to the left of what should be the first colon.
12
12
  """Interface to TerminalInteractiveShell for PyDev Interactive Console frontend
13
- for IPython 0.11 to 1.0+.
13
+ for IPython 0.11 to 1.0+.
14
14
  """
15
15
 
16
16
  from __future__ import print_function
@@ -96,9 +96,20 @@ class PyDevIPCompleter6(IPCompleter):
96
96
  def matchers(self):
97
97
  """All active matcher routines for completion"""
98
98
  # To remove python_matches we now have to override it as it's now a property in the superclass.
99
+
100
+ # Newer versions of IPython have file_matcher and magic_matcher.
101
+ try:
102
+ file_matches = self.file_matches
103
+ except AttributeError:
104
+ file_matches = self.file_matcher
105
+
106
+ try:
107
+ magic_matches = self.magic_matches
108
+ except AttributeError:
109
+ magic_matches = self.magic_matcher
99
110
  return [
100
- self.file_matches,
101
- self.magic_matches,
111
+ file_matches,
112
+ magic_matches,
102
113
  self.python_func_kw_matches,
103
114
  self.dict_key_matches,
104
115
  ]
@@ -137,6 +148,7 @@ class PyDevTerminalInteractiveShell(TerminalInteractiveShell):
137
148
  # Since IPython 5 the terminal interface is not compatible with Emacs `inferior-shell` and
138
149
  # the `simple_prompt` flag is needed
139
150
  simple_prompt = CBool(True)
151
+ use_jedy = CBool(False)
140
152
 
141
153
  # In the PyDev Console, GUI control is done via hookable XML-RPC server
142
154
  @staticmethod
@@ -366,12 +378,17 @@ class _PyDevFrontEnd:
366
378
  def complete(self, string):
367
379
  try:
368
380
  if string:
369
- return self.ipython.complete(None, line=string, cursor_pos=string.__len__())
381
+ ret = self.ipython.complete(None, line=string, cursor_pos=string.__len__())
370
382
  else:
371
- return self.ipython.complete(string, string, 0)
383
+ ret = self.ipython.complete(string, string, 0)
384
+
385
+ return ret
372
386
  except:
387
+ import traceback
388
+
389
+ traceback.print_exc()
373
390
  # Silence completer exceptions
374
- pass
391
+ return None, []
375
392
 
376
393
  def is_complete(self, string):
377
394
  # Based on IPython 0.10.1
@@ -435,8 +452,6 @@ class _PyDevFrontEnd:
435
452
  append((ipython_completion, pydev_doc, "", pydev_type))
436
453
  return ret
437
454
  except:
438
- import traceback
439
-
440
455
  traceback.print_exc()
441
456
  return []
442
457
 
@@ -9,7 +9,7 @@ if hasattr(_temp, "_os_thread_handle"): # Python 3.14 and later has this
9
9
  def is_thread_alive(t):
10
10
  return not t._os_thread_handle.is_done()
11
11
 
12
- if hasattr(_temp, "_handle") and hasattr(_temp, "_started"): # Python 3.13 and later has this
12
+ elif hasattr(_temp, "_handle") and hasattr(_temp, "_started"): # Python 3.13 and later has this
13
13
 
14
14
  def is_thread_alive(t):
15
15
  return not t._handle.is_done()
@@ -1,7 +1,11 @@
1
1
  # License: EPL
2
+ from __future__ import annotations
3
+
4
+ from _thread import _local
2
5
  import os
3
6
  import re
4
7
  import sys
8
+ from typing import Generator
5
9
  from _pydev_bundle._pydev_saved_modules import threading
6
10
  from _pydevd_bundle.pydevd_constants import (
7
11
  get_global_debugger,
@@ -25,13 +29,13 @@ from pathlib import Path
25
29
  # Things that are dependent on having the pydevd debugger
26
30
  # ===============================================================================
27
31
 
28
- pydev_src_dir = os.path.dirname(os.path.dirname(__file__))
32
+ pydev_src_dir: str = os.path.dirname(os.path.dirname(__file__))
29
33
 
30
- _arg_patch = threading.local()
34
+ _arg_patch: _local = threading.local()
31
35
 
32
36
 
33
37
  @contextmanager
34
- def skip_subprocess_arg_patch():
38
+ def skip_subprocess_arg_patch() -> Generator[None, Any, None]:
35
39
  _arg_patch.apply_arg_patching = False
36
40
  try:
37
41
  yield
@@ -39,7 +43,7 @@ def skip_subprocess_arg_patch():
39
43
  _arg_patch.apply_arg_patching = True
40
44
 
41
45
 
42
- def _get_apply_arg_patching():
46
+ def _get_apply_arg_patching() -> os.Any | bool:
43
47
  return getattr(_arg_patch, "apply_arg_patching", True)
44
48
 
45
49
 
@@ -58,7 +62,7 @@ def _get_setup_updated_with_protocol_and_ppid(setup, is_exec=False):
58
62
  # If it's an exec, keep it what it was.
59
63
  setup[pydevd_constants.ARGUMENT_PPID] = os.getpid()
60
64
 
61
- protocol = pydevd_constants.get_protocol()
65
+ protocol: str = pydevd_constants.get_protocol()
62
66
  if protocol == pydevd_constants.HTTP_JSON_PROTOCOL:
63
67
  setup[pydevd_constants.ARGUMENT_HTTP_JSON_PROTOCOL] = True
64
68
 
@@ -74,11 +78,11 @@ def _get_setup_updated_with_protocol_and_ppid(setup, is_exec=False):
74
78
  else:
75
79
  pydev_log.debug("Unexpected protocol: %s", protocol)
76
80
 
77
- mode = pydevd_defaults.PydevdCustomization.DEBUG_MODE
81
+ mode: str = pydevd_defaults.PydevdCustomization.DEBUG_MODE
78
82
  if mode:
79
83
  setup["debug-mode"] = mode
80
84
 
81
- preimport = pydevd_defaults.PydevdCustomization.PREIMPORT
85
+ preimport: str = pydevd_defaults.PydevdCustomization.PREIMPORT
82
86
  if preimport:
83
87
  setup["preimport"] = preimport
84
88
 
@@ -92,12 +96,12 @@ def _get_setup_updated_with_protocol_and_ppid(setup, is_exec=False):
92
96
 
93
97
 
94
98
  class _LastFutureImportFinder(ast.NodeVisitor):
95
- def __init__(self):
99
+ def __init__(self) -> None:
96
100
  self.last_future_import_found = None
97
101
 
98
- def visit_ImportFrom(self, node):
102
+ def visit_ImportFrom(self, node) -> None:
99
103
  if node.module == "__future__":
100
- self.last_future_import_found = node
104
+ self.last_future_import_found: ast.ImportFrom = node
101
105
 
102
106
 
103
107
  def _get_offset_from_line_col(code, line, col):
@@ -133,7 +137,7 @@ def _separate_future_imports(code):
133
137
  if visitor.last_future_import_found is None:
134
138
  return "", code
135
139
 
136
- node = visitor.last_future_import_found
140
+ node: ast.ImportFrom = visitor.last_future_import_found
137
141
  offset = -1
138
142
  if hasattr(node, "end_lineno") and hasattr(node, "end_col_offset"):
139
143
  # Python 3.8 onwards has these (so, use when possible).
@@ -144,9 +148,9 @@ def _separate_future_imports(code):
144
148
  # end line/col not available, let's just find the offset and then search
145
149
  # for the alias from there.
146
150
  line, col = node.lineno, node.col_offset
147
- offset = _get_offset_from_line_col(code, line - 1, col) # ast lines are 1-based, make it 0-based.
151
+ offset: int = _get_offset_from_line_col(code, line - 1, col) # ast lines are 1-based, make it 0-based.
148
152
  if offset >= 0 and node.names:
149
- from_future_import_name = node.names[-1].name
153
+ from_future_import_name: str = node.names[-1].name
150
154
  i = code.find(from_future_import_name, offset)
151
155
  if i < 0:
152
156
  offset = -1
@@ -183,19 +187,25 @@ def _separate_future_imports(code):
183
187
  return "", code
184
188
 
185
189
 
186
- def _get_python_c_args(host, port, code, args, setup):
190
+ def _get_python_c_args(host, port, code, args, setup) -> bytes | str:
187
191
  setup = _get_setup_updated_with_protocol_and_ppid(setup)
188
192
 
189
193
  # i.e.: We want to make the repr sorted so that it works in tests.
190
194
  setup_repr = setup if setup is None else (sorted_dict_repr(setup))
191
195
 
192
- future_imports = ""
196
+ # Normalize code to str for processing if it's bytes (can happen on Linux/WSL
197
+ # with loky/joblib subprocesses). We'll convert back to the original type at the end.
198
+ code_is_bytes: bool = isinstance(code, bytes)
199
+ if code_is_bytes:
200
+ code: str = code.decode("utf-8")
201
+
202
+ future_imports: str = ""
193
203
  if "__future__" in code:
194
204
  # If the code has a __future__ import, we need to be able to strip the __future__
195
205
  # imports from the code and add them to the start of our code snippet.
196
206
  future_imports, code = _separate_future_imports(code)
197
207
 
198
- return (
208
+ result: str = (
199
209
  "%simport sys; sys.path.insert(0, r'%s'); import pydevd; pydevd.config(%r, %r); "
200
210
  "pydevd.settrace(host=%r, port=%s, suspend=False, trace_only_current_thread=False, patch_multiprocessing=True, access_token=%r, client_access_token=%r, __setup_holder__=%s); "
201
211
  "%s"
@@ -212,6 +222,12 @@ def _get_python_c_args(host, port, code, args, setup):
212
222
  code,
213
223
  )
214
224
 
225
+ # Convert back to the original type if it was bytes
226
+ if code_is_bytes:
227
+ result: bytes = result.encode("utf-8")
228
+
229
+ return result
230
+
215
231
 
216
232
  def _get_host_port():
217
233
  import pydevd
@@ -220,14 +236,14 @@ def _get_host_port():
220
236
  return host, port
221
237
 
222
238
 
223
- def _is_managed_arg(arg):
239
+ def _is_managed_arg(arg) -> bool:
224
240
  pydevd_py = _get_str_type_compatible(arg, "pydevd.py")
225
241
  if arg.endswith(pydevd_py):
226
242
  return True
227
243
  return False
228
244
 
229
245
 
230
- def _on_forked_process(setup_tracing=True):
246
+ def _on_forked_process(setup_tracing=True) -> None:
231
247
  pydevd_constants.after_fork()
232
248
  pydev_log.initialize_debug_stream(reinitialize=True)
233
249
 
@@ -240,7 +256,7 @@ def _on_forked_process(setup_tracing=True):
240
256
  pydevd.settrace_forked(setup_tracing=setup_tracing)
241
257
 
242
258
 
243
- def _on_set_trace_for_new_thread(global_debugger):
259
+ def _on_set_trace_for_new_thread(global_debugger) -> None:
244
260
  if global_debugger is not None:
245
261
  if not PYDEVD_USE_SYS_MONITORING:
246
262
  global_debugger.enable_tracing()
@@ -274,7 +290,7 @@ def _get_str_type_compatible(s, args):
274
290
  # ===============================================================================
275
291
  # Things related to monkey-patching
276
292
  # ===============================================================================
277
- def is_python(path):
293
+ def is_python(path) -> bool:
278
294
  single_quote, double_quote = _get_str_type_compatible(path, ["'", '"'])
279
295
 
280
296
  if path.endswith(single_quote) or path.endswith(double_quote):
@@ -314,7 +330,7 @@ def remove_quotes_from_args(args):
314
330
  new_args = []
315
331
  for x in args:
316
332
  if isinstance(x, Path):
317
- x = x.as_posix()
333
+ x: str = x.as_posix()
318
334
  else:
319
335
  if not isinstance(x, (bytes, str)):
320
336
  raise InvalidTypeInArgsException(str(type(x)))
@@ -422,17 +438,17 @@ def patch_args(args, is_exec=False):
422
438
  #
423
439
  # python -O -Q old -v -c "import sys;print(sys)"
424
440
 
425
- params_with_combinable_arg = set(("W", "X", "Q", "c", "m"))
441
+ params_with_combinable_arg: set[Literal['W', 'X', 'Q', 'c', 'm']] = set(("W", "X", "Q", "c", "m"))
426
442
 
427
443
  module_name = None
428
- before_module_flag = ""
444
+ before_module_flag: str = ""
429
445
  module_name_i_start = -1
430
446
  module_name_i_end = -1
431
447
 
432
448
  code = None
433
449
  code_i = -1
434
450
  code_i_end = -1
435
- code_flag = ""
451
+ code_flag: str = ""
436
452
 
437
453
  filename = None
438
454
  filename_i = -1
@@ -471,15 +487,15 @@ def patch_args(args, is_exec=False):
471
487
  # python -qmtest
472
488
  before_module_flag = arg_as_str[:j] # before_module_flag would then be "-q"
473
489
  if before_module_flag == "-":
474
- before_module_flag = ""
475
- module_name_i_start = i
490
+ before_module_flag: str = ""
491
+ module_name_i_start: int = i
476
492
  if not remainder:
477
493
  module_name = unquoted_args[i + 1]
478
- module_name_i_end = i + 1
494
+ module_name_i_end: int = i + 1
479
495
  else:
480
496
  # i.e.: python -qmtest should provide 'test' as the module_name
481
497
  module_name = unquoted_args[i][j + 1 :]
482
- module_name_i_end = module_name_i_start
498
+ module_name_i_end: int = module_name_i_start
483
499
  break_out = True
484
500
  break
485
501
 
@@ -493,12 +509,12 @@ def patch_args(args, is_exec=False):
493
509
  if not remainder:
494
510
  # arg_as_str is something as "-qc", "import sys"
495
511
  code = unquoted_args[i + 1]
496
- code_i_end = i + 2
512
+ code_i_end: int = i + 2
497
513
  else:
498
514
  # if arg_as_str is something as "-qcimport sys"
499
515
  code = remainder # code would be "import sys"
500
- code_i_end = i + 1
501
- code_i = i
516
+ code_i_end: int = i + 1
517
+ code_i: int = i
502
518
  break_out = True
503
519
  break
504
520
 
@@ -519,7 +535,7 @@ def patch_args(args, is_exec=False):
519
535
  # So, we should support whatever runpy.run_path
520
536
  # supports in this case.
521
537
 
522
- filename_i = i
538
+ filename_i: int = i
523
539
 
524
540
  if _is_managed_arg(filename): # no need to add pydevd twice
525
541
  pydev_log.debug("Skipped monkey-patching as pydevd.py is in args already.")
@@ -543,7 +559,7 @@ def patch_args(args, is_exec=False):
543
559
 
544
560
  return quote_args(new_args)
545
561
 
546
- first_non_vm_index = max(filename_i, module_name_i_start)
562
+ first_non_vm_index: int = max(filename_i, module_name_i_start)
547
563
  if first_non_vm_index == -1:
548
564
  pydev_log.debug("Unable to fix arguments to attach debugger on subprocess (could not resolve filename nor module name).")
549
565
  return original_args
@@ -558,7 +574,7 @@ def patch_args(args, is_exec=False):
558
574
  if before_module_flag:
559
575
  new_args.append(before_module_flag)
560
576
 
561
- add_module_at = len(new_args) + 1
577
+ add_module_at: int = len(new_args) + 1
562
578
 
563
579
  new_args.extend(
564
580
  setup_to_argv(
@@ -601,11 +617,11 @@ def str_to_args_windows(args):
601
617
  ARG = 1
602
618
  IN_DOUBLE_QUOTE = 2
603
619
 
604
- state = DEFAULT
620
+ state: int = DEFAULT
605
621
  backslashes = 0
606
- buf = ""
622
+ buf: str = ""
607
623
 
608
- args_len = len(args)
624
+ args_len: int = len(args)
609
625
  for i in range(args_len):
610
626
  ch = args[i]
611
627
  if ch == "\\":
@@ -618,7 +634,7 @@ def str_to_args_windows(args):
618
634
  buf += "\\"
619
635
  if backslashes == 1:
620
636
  if state == DEFAULT:
621
- state = ARG
637
+ state: int = ARG
622
638
 
623
639
  buf += '"'
624
640
  backslashes = 0
@@ -627,7 +643,7 @@ def str_to_args_windows(args):
627
643
  else:
628
644
  # false alarm, treat passed backslashes literally...
629
645
  if state == DEFAULT:
630
- state = ARG
646
+ state: int = ARG
631
647
 
632
648
  while backslashes > 0:
633
649
  backslashes -= 1
@@ -638,16 +654,16 @@ def str_to_args_windows(args):
638
654
  # skip
639
655
  continue
640
656
  elif state == ARG:
641
- state = DEFAULT
657
+ state: int = DEFAULT
642
658
  result.append(buf)
643
- buf = ""
659
+ buf: str = ""
644
660
  continue
645
661
 
646
662
  if state in (DEFAULT, ARG):
647
663
  if ch == '"':
648
- state = IN_DOUBLE_QUOTE
664
+ state: int = IN_DOUBLE_QUOTE
649
665
  else:
650
- state = ARG
666
+ state: int = ARG
651
667
  buf += ch
652
668
 
653
669
  elif state == IN_DOUBLE_QUOTE:
@@ -659,7 +675,7 @@ def str_to_args_windows(args):
659
675
  buf += '"'
660
676
  i += 1
661
677
  else:
662
- state = ARG
678
+ state: int = ARG
663
679
  else:
664
680
  buf += ch
665
681
 
@@ -677,12 +693,12 @@ def patch_arg_str_win(arg_str):
677
693
  # Fix https://youtrack.jetbrains.com/issue/PY-9767 (args may be empty)
678
694
  if not args or not is_python(args[0]):
679
695
  return arg_str
680
- arg_str = " ".join(patch_args(args))
696
+ arg_str: str = " ".join(patch_args(args))
681
697
  pydev_log.debug("New args: %s", arg_str)
682
698
  return arg_str
683
699
 
684
700
 
685
- def monkey_patch_module(module, funcname, create_func):
701
+ def monkey_patch_module(module, funcname, create_func) -> None:
686
702
  if hasattr(module, funcname):
687
703
  original_name = "original_" + funcname
688
704
  if not hasattr(module, original_name):
@@ -690,11 +706,11 @@ def monkey_patch_module(module, funcname, create_func):
690
706
  setattr(module, funcname, create_func(original_name))
691
707
 
692
708
 
693
- def monkey_patch_os(funcname, create_func):
709
+ def monkey_patch_os(funcname, create_func) -> None:
694
710
  monkey_patch_module(os, funcname, create_func)
695
711
 
696
712
 
697
- def warn_multiproc():
713
+ def warn_multiproc() -> None:
698
714
  pass # TODO: Provide logging as messages to the IDE.
699
715
  # pydev_log.error_once(
700
716
  # "pydev debugger: New process is launching (breakpoints won't work in the new process).\n"
@@ -847,7 +863,7 @@ def create_warn_fork_exec(original_name):
847
863
  _posixsubprocess.fork_exec(args, executable_list, close_fds, ... (13 more))
848
864
  """
849
865
 
850
- def new_warn_fork_exec(*args):
866
+ def new_warn_fork_exec(*args) -> os.Any | None:
851
867
  try:
852
868
  import _posixsubprocess
853
869
 
@@ -881,7 +897,7 @@ def create_subprocess_warn_fork_exec(original_name):
881
897
  subprocess._fork_exec(args, executable_list, close_fds, ... (13 more))
882
898
  """
883
899
 
884
- def new_warn_fork_exec(*args):
900
+ def new_warn_fork_exec(*args) -> os.Any | None:
885
901
  try:
886
902
  import subprocess
887
903
 
@@ -929,13 +945,13 @@ def create_CreateProcessWarnMultiproc(original_name):
929
945
  return new_CreateProcess
930
946
 
931
947
 
932
- def create_fork(original_name):
948
+ def create_fork(original_name) -> Callable[[], Any]:
933
949
  def new_fork():
934
950
  # A simple fork will result in a new python process
935
951
  is_new_python_process = True
936
- frame = sys._getframe()
952
+ frame: sys.FrameType = sys._getframe()
937
953
 
938
- apply_arg_patch = _get_apply_arg_patching()
954
+ apply_arg_patch: os.Any | bool = _get_apply_arg_patching()
939
955
 
940
956
  is_subprocess_fork = False
941
957
  while frame is not None:
@@ -944,18 +960,18 @@ def create_fork(original_name):
944
960
  # If we're actually in subprocess.Popen creating a child, it may
945
961
  # result in something which is not a Python process, (so, we
946
962
  # don't want to connect with it in the forked version).
947
- executable = frame.f_locals.get("executable")
963
+ executable: os.Any | None = frame.f_locals.get("executable")
948
964
  if executable is not None:
949
965
  is_new_python_process = False
950
966
  if is_python(executable):
951
967
  is_new_python_process = True
952
968
  break
953
969
 
954
- frame = frame.f_back
970
+ frame: sys.FrameType | None = frame.f_back
955
971
  frame = None # Just make sure we don't hold on to it.
956
972
 
957
- protocol = pydevd_constants.get_protocol()
958
- debug_mode = PydevdCustomization.DEBUG_MODE
973
+ protocol: str = pydevd_constants.get_protocol()
974
+ debug_mode: str = PydevdCustomization.DEBUG_MODE
959
975
 
960
976
  child_process = getattr(os, original_name)() # fork
961
977
  if not child_process:
@@ -973,19 +989,19 @@ def create_fork(original_name):
973
989
  return new_fork
974
990
 
975
991
 
976
- def send_process_created_message():
977
- py_db = get_global_debugger()
992
+ def send_process_created_message() -> None:
993
+ py_db: None = get_global_debugger()
978
994
  if py_db is not None:
979
995
  py_db.send_process_created_message()
980
996
 
981
997
 
982
- def send_process_about_to_be_replaced():
983
- py_db = get_global_debugger()
998
+ def send_process_about_to_be_replaced() -> None:
999
+ py_db: None = get_global_debugger()
984
1000
  if py_db is not None:
985
1001
  py_db.send_process_about_to_be_replaced()
986
1002
 
987
1003
 
988
- def patch_new_process_functions():
1004
+ def patch_new_process_functions() -> None:
989
1005
  # os.execl(path, arg0, arg1, ...)
990
1006
  # os.execle(path, arg0, arg1, ..., env)
991
1007
  # os.execlp(file, arg0, arg1, ...)
@@ -1050,7 +1066,7 @@ def patch_new_process_functions():
1050
1066
  monkey_patch_module(_subprocess, "CreateProcess", create_CreateProcess)
1051
1067
 
1052
1068
 
1053
- def patch_new_process_functions_with_warning():
1069
+ def patch_new_process_functions_with_warning() -> None:
1054
1070
  monkey_patch_os("execl", create_warn_multiproc)
1055
1071
  monkey_patch_os("execle", create_warn_multiproc)
1056
1072
  monkey_patch_os("execlp", create_warn_multiproc)
@@ -1096,15 +1112,15 @@ def patch_new_process_functions_with_warning():
1096
1112
 
1097
1113
 
1098
1114
  class _NewThreadStartupWithTrace:
1099
- def __init__(self, original_func, args, kwargs):
1100
- self.original_func = original_func
1101
- self.args = args
1102
- self.kwargs = kwargs
1115
+ def __init__(self, original_func, args, kwargs) -> None:
1116
+ self.original_func: Any = original_func
1117
+ self.args: Any = args
1118
+ self.kwargs: Any = kwargs
1103
1119
 
1104
1120
  def __call__(self):
1105
1121
  # We monkey-patch the thread creation so that this function is called in the new thread. At this point
1106
1122
  # we notify of its creation and start tracing it.
1107
- py_db = get_global_debugger()
1123
+ py_db: None = get_global_debugger()
1108
1124
 
1109
1125
  thread_id = None
1110
1126
  if py_db is not None:
@@ -1112,11 +1128,11 @@ class _NewThreadStartupWithTrace:
1112
1128
  # the start_new_thread internal machinery and thread._bootstrap has not finished), so, the code below needs
1113
1129
  # to make sure that we use the current thread bound to the original function and not use
1114
1130
  # threading.current_thread() unless we're sure it's a dummy thread.
1115
- t = getattr(self.original_func, "__self__", getattr(self.original_func, "im_self", None))
1131
+ t: os.Any | None = getattr(self.original_func, "__self__", getattr(self.original_func, "im_self", None))
1116
1132
  if not isinstance(t, threading.Thread):
1117
1133
  # This is not a threading.Thread but a Dummy thread (so, get it as a dummy thread using
1118
1134
  # currentThread).
1119
- t = threading.current_thread()
1135
+ t: threading.Thread = threading.current_thread()
1120
1136
 
1121
1137
  if not getattr(t, "is_pydev_daemon_thread", False):
1122
1138
  thread_id = get_current_thread_id(t)
@@ -1144,10 +1160,10 @@ class _NewThreadStartupWithTrace:
1144
1160
 
1145
1161
 
1146
1162
  class _NewThreadStartupWithoutTrace:
1147
- def __init__(self, original_func, args, kwargs):
1148
- self.original_func = original_func
1149
- self.args = args
1150
- self.kwargs = kwargs
1163
+ def __init__(self, original_func, args, kwargs) -> None:
1164
+ self.original_func: Any = original_func
1165
+ self.args: Any = args
1166
+ self.kwargs: Any = kwargs
1151
1167
 
1152
1168
  def __call__(self):
1153
1169
  return self.original_func(*self.args, **self.kwargs)
@@ -1172,12 +1188,12 @@ def _get_threading_modules_to_patch():
1172
1188
  threading_modules_to_patch = _get_threading_modules_to_patch()
1173
1189
 
1174
1190
 
1175
- def patch_thread_module(thread_module):
1191
+ def patch_thread_module(thread_module) -> None:
1176
1192
  # Note: this is needed not just for the tracing, but to have an early way to
1177
1193
  # notify that a thread was created (i.e.: tests_python.test_debugger_json.test_case_started_exited_threads_protocol)
1178
- start_thread_attrs = ["_start_new_thread", "start_new_thread", "start_new"]
1179
- start_joinable_attrs = ["start_joinable_thread", "_start_joinable_thread"]
1180
- check = start_thread_attrs + start_joinable_attrs
1194
+ start_thread_attrs: list[str] = ["_start_new_thread", "start_new_thread", "start_new"]
1195
+ start_joinable_attrs: list[str] = ["start_joinable_thread", "_start_joinable_thread"]
1196
+ check: list[str] = start_thread_attrs + start_joinable_attrs
1181
1197
 
1182
1198
  replace_attrs = []
1183
1199
  for attr in check:
@@ -1240,12 +1256,12 @@ def patch_thread_module(thread_module):
1240
1256
  setattr(thread_module, attr, pydev_start_new_thread)
1241
1257
 
1242
1258
 
1243
- def patch_thread_modules():
1259
+ def patch_thread_modules() -> None:
1244
1260
  for t in threading_modules_to_patch:
1245
1261
  patch_thread_module(t)
1246
1262
 
1247
1263
 
1248
- def undo_patch_thread_modules():
1264
+ def undo_patch_thread_modules() -> None:
1249
1265
  for t in threading_modules_to_patch:
1250
1266
  try:
1251
1267
  t.start_new_thread = t._original_start_new_thread
@@ -1273,7 +1289,7 @@ def undo_patch_thread_modules():
1273
1289
  pass
1274
1290
 
1275
1291
 
1276
- def disable_trace_thread_modules():
1292
+ def disable_trace_thread_modules() -> None:
1277
1293
  """
1278
1294
  Can be used to temporarily stop tracing threads created with thread.start_new_thread.
1279
1295
  """
@@ -1281,7 +1297,7 @@ def disable_trace_thread_modules():
1281
1297
  _UseNewThreadStartup = _NewThreadStartupWithoutTrace
1282
1298
 
1283
1299
 
1284
- def enable_trace_thread_modules():
1300
+ def enable_trace_thread_modules() -> None:
1285
1301
  """
1286
1302
  Can be used to start tracing threads created with thread.start_new_thread again.
1287
1303
  """
@@ -140,7 +140,7 @@ class PyDBAdditionalThreadInfo(object):
140
140
  return None
141
141
 
142
142
  if thread._ident is None: # Can this happen?
143
- pydev_log.critical("thread._ident is None in _get_related_thread!")
143
+ pydev_log.critical("thread._ident is None in _get_related_thread! - thread: %s", thread)
144
144
  return None
145
145
 
146
146
  if threading._active.get(thread._ident) is not thread:
@@ -994,6 +994,9 @@ class PyDevdAPI(object):
994
994
  def set_ignore_system_exit_codes(self, py_db, ignore_system_exit_codes):
995
995
  py_db.set_ignore_system_exit_codes(ignore_system_exit_codes)
996
996
 
997
+ def set_break_on_system_exit(self, py_db, codes, ranges):
998
+ py_db.set_break_on_system_exit(codes, ranges)
999
+
997
1000
  SourceMappingEntry = pydevd_source_mapping.SourceMappingEntry
998
1001
 
999
1002
  def set_source_mapping(self, py_db, source_filename, mapping):