debugpy 1.8.7__zip → 1.8.9__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.
Files changed (320) hide show
  1. {debugpy-1.8.7/src/debugpy.egg-info → debugpy-1.8.9}/PKG-INFO +1 -1
  2. {debugpy-1.8.7 → debugpy-1.8.9}/pyproject.toml +5 -2
  3. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/_pydev_bundle/pydev_is_thread_alive.py +8 -1
  4. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/_pydev_bundle/pydev_monkey.py +58 -24
  5. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/_pydev_runfiles/pydev_runfiles_xml_rpc.py +1 -1
  6. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/_pydevd_bundle/_debug_adapter/__main__pydevd_gen_debug_adapter_protocol.py +3 -1
  7. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_api.py +2 -1
  8. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_code_to_source.py +1 -2
  9. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_collect_bytecode_info.py +6 -121
  10. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_comm.py +9 -9
  11. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_constants.py +8 -0
  12. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_cython.c +3395 -3365
  13. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_cython.pyx +7 -10
  14. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_daemon_thread.py +1 -0
  15. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_frame.py +6 -7
  16. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_frame_utils.py +27 -24
  17. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_plugin_utils.py +2 -2
  18. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_process_net_command_json.py +2 -1
  19. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_save_locals.py +17 -2
  20. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_trace_dispatch_regular.py +1 -3
  21. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/pydevd_frame_evaluator.c +651 -631
  22. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/pydevd_modify_bytecode.py +2 -1
  23. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode/concrete.py +1 -2
  24. debugpy-1.8.9/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode-0.13.0.dev0.dist-info/COPYING +21 -0
  25. debugpy-1.8.9/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode-0.13.0.dev0.dist-info/INSTALLER +1 -0
  26. debugpy-1.8.9/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode-0.13.0.dev0.dist-info/METADATA +77 -0
  27. debugpy-1.8.9/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode-0.13.0.dev0.dist-info/RECORD +42 -0
  28. debugpy-1.8.9/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode-0.13.0.dev0.dist-info/WHEEL +5 -0
  29. debugpy-1.8.9/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode-0.13.0.dev0.dist-info/direct_url.json +1 -0
  30. debugpy-1.8.9/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode-0.13.0.dev0.dist-info/top_level.txt +1 -0
  31. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/_pydevd_sys_monitoring/_pydevd_sys_monitoring.py +138 -100
  32. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/_pydevd_sys_monitoring/_pydevd_sys_monitoring_cython.c +7539 -5838
  33. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/_pydevd_sys_monitoring/_pydevd_sys_monitoring_cython.pyx +138 -100
  34. debugpy-1.8.9/src/debugpy/_vendored/pydevd/pydev_ipython/__init__.py +0 -0
  35. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/pydev_ipython/inputhookqt4.py +1 -2
  36. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/pydev_ipython/inputhookqt5.py +1 -1
  37. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/pydev_ipython/inputhookqt6.py +1 -1
  38. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/pydev_ipython/qt_loaders.py +27 -4
  39. debugpy-1.8.9/src/debugpy/_vendored/pydevd/pydev_ipython/version.py +50 -0
  40. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/pydevd.py +35 -38
  41. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/add_code_to_python_process.py +1 -1
  42. debugpy-1.8.9/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/attach_amd64.dll +0 -0
  43. debugpy-1.8.9/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/attach_amd64.pdb +0 -0
  44. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/attach_script.py +4 -0
  45. debugpy-1.8.9/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/attach_x86.dll +0 -0
  46. debugpy-1.8.9/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/attach_x86.pdb +0 -0
  47. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/common/py_settrace.hpp +11 -11
  48. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/inject_dll_amd64.exe +0 -0
  49. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/inject_dll_amd64.pdb +0 -0
  50. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/inject_dll_x86.exe +0 -0
  51. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/inject_dll_x86.pdb +0 -0
  52. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/run_code_on_dllmain_amd64.dll +0 -0
  53. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/run_code_on_dllmain_amd64.pdb +0 -0
  54. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/run_code_on_dllmain_x86.dll +0 -0
  55. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/run_code_on_dllmain_x86.pdb +0 -0
  56. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/windows/attach.cpp +2 -4
  57. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/windows/compile_windows.bat +6 -8
  58. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/pydevd_file_utils.py +28 -40
  59. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/pydevd_plugins/django_debug.py +2 -1
  60. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/pydevd_plugins/jinja2_debug.py +1 -1
  61. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/pydevd_tracing.py +4 -1
  62. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_version.py +3 -3
  63. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/adapter/servers.py +2 -2
  64. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/common/__init__.py +2 -2
  65. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/launcher/debuggee.py +2 -1
  66. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/server/api.py +1 -1
  67. {debugpy-1.8.7 → debugpy-1.8.9/src/debugpy.egg-info}/PKG-INFO +1 -1
  68. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy.egg-info/SOURCES.txt +8 -0
  69. debugpy-1.8.7/src/debugpy/_vendored/pydevd/pydev_ipython/version.py +0 -36
  70. debugpy-1.8.7/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/attach_amd64.dll +0 -0
  71. debugpy-1.8.7/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/attach_amd64.pdb +0 -0
  72. debugpy-1.8.7/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/attach_x86.dll +0 -0
  73. debugpy-1.8.7/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/attach_x86.pdb +0 -0
  74. {debugpy-1.8.7 → debugpy-1.8.9}/DESCRIPTION.md +0 -0
  75. {debugpy-1.8.7 → debugpy-1.8.9}/LICENSE +0 -0
  76. {debugpy-1.8.7 → debugpy-1.8.9}/MANIFEST.in +0 -0
  77. {debugpy-1.8.7 → debugpy-1.8.9}/README.md +0 -0
  78. {debugpy-1.8.7 → debugpy-1.8.9}/setup.cfg +0 -0
  79. {debugpy-1.8.7 → debugpy-1.8.9}/setup.py +0 -0
  80. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/ThirdPartyNotices.txt +0 -0
  81. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/__init__.py +0 -0
  82. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/__main__.py +0 -0
  83. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/__init__.py +0 -0
  84. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/_pydevd_packaging.py +0 -0
  85. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/_util.py +0 -0
  86. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/force_pydevd.py +0 -0
  87. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/_pydev_bundle/__init__.py +0 -0
  88. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/_pydev_bundle/_pydev_calltip_util.py +0 -0
  89. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/_pydev_bundle/_pydev_completer.py +0 -0
  90. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/_pydev_bundle/_pydev_execfile.py +0 -0
  91. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/_pydev_bundle/_pydev_filesystem_encoding.py +0 -0
  92. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/_pydev_bundle/_pydev_getopt.py +0 -0
  93. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/_pydev_bundle/_pydev_imports_tipper.py +0 -0
  94. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/_pydev_bundle/_pydev_jy_imports_tipper.py +0 -0
  95. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/_pydev_bundle/_pydev_log.py +0 -0
  96. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/_pydev_bundle/_pydev_saved_modules.py +0 -0
  97. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/_pydev_bundle/_pydev_sys_patch.py +0 -0
  98. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/_pydev_bundle/_pydev_tipper_common.py +0 -0
  99. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/_pydev_bundle/fsnotify/__init__.py +0 -0
  100. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/_pydev_bundle/pydev_console_utils.py +0 -0
  101. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/_pydev_bundle/pydev_import_hook.py +0 -0
  102. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/_pydev_bundle/pydev_imports.py +0 -0
  103. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/_pydev_bundle/pydev_ipython_console.py +0 -0
  104. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/_pydev_bundle/pydev_ipython_console_011.py +0 -0
  105. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/_pydev_bundle/pydev_localhost.py +0 -0
  106. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/_pydev_bundle/pydev_log.py +0 -0
  107. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/_pydev_bundle/pydev_monkey_qt.py +0 -0
  108. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/_pydev_bundle/pydev_override.py +0 -0
  109. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/_pydev_bundle/pydev_umd.py +0 -0
  110. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/_pydev_bundle/pydev_versioncheck.py +0 -0
  111. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/_pydev_runfiles/__init__.py +0 -0
  112. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/_pydev_runfiles/pydev_runfiles.py +0 -0
  113. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/_pydev_runfiles/pydev_runfiles_coverage.py +0 -0
  114. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/_pydev_runfiles/pydev_runfiles_nose.py +0 -0
  115. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/_pydev_runfiles/pydev_runfiles_parallel.py +0 -0
  116. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/_pydev_runfiles/pydev_runfiles_parallel_client.py +0 -0
  117. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/_pydev_runfiles/pydev_runfiles_pytest2.py +0 -0
  118. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/_pydev_runfiles/pydev_runfiles_unittest.py +0 -0
  119. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/_pydevd_bundle/__init__.py +0 -0
  120. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/_pydevd_bundle/_debug_adapter/__init__.py +0 -0
  121. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/_pydevd_bundle/_debug_adapter/debugProtocol.json +0 -0
  122. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/_pydevd_bundle/_debug_adapter/debugProtocolCustom.json +0 -0
  123. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/_pydevd_bundle/_debug_adapter/pydevd_base_schema.py +0 -0
  124. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/_pydevd_bundle/_debug_adapter/pydevd_schema.py +0 -0
  125. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/_pydevd_bundle/_debug_adapter/pydevd_schema_log.py +0 -0
  126. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevconsole_code.py +0 -0
  127. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_additional_thread_info.py +0 -0
  128. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_additional_thread_info_regular.py +0 -0
  129. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_breakpoints.py +0 -0
  130. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_bytecode_utils.py +0 -0
  131. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_bytecode_utils_py311.py +0 -0
  132. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_comm_constants.py +0 -0
  133. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_command_line_handling.py +0 -0
  134. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_concurrency_analyser/__init__.py +0 -0
  135. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_concurrency_analyser/pydevd_concurrency_logger.py +0 -0
  136. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_concurrency_analyser/pydevd_thread_wrappers.py +0 -0
  137. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_console.py +0 -0
  138. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_custom_frames.py +0 -0
  139. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_cython.pxd +0 -0
  140. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_cython_wrapper.py +0 -0
  141. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_defaults.py +0 -0
  142. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_dont_trace.py +0 -0
  143. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_dont_trace_files.py +0 -0
  144. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_exec2.py +0 -0
  145. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_extension_api.py +0 -0
  146. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_extension_utils.py +0 -0
  147. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_filtering.py +0 -0
  148. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_gevent_integration.py +0 -0
  149. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_import_class.py +0 -0
  150. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_io.py +0 -0
  151. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_json_debug_options.py +0 -0
  152. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_net_command.py +0 -0
  153. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_net_command_factory_json.py +0 -0
  154. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_net_command_factory_xml.py +0 -0
  155. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_process_net_command.py +0 -0
  156. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_referrers.py +0 -0
  157. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_reload.py +0 -0
  158. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_resolver.py +0 -0
  159. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_runpy.py +0 -0
  160. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_safe_repr.py +0 -0
  161. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_signature.py +0 -0
  162. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_source_mapping.py +0 -0
  163. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_stackless.py +0 -0
  164. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_suspended_frames.py +0 -0
  165. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_thread_lifecycle.py +0 -0
  166. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_timeout.py +0 -0
  167. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_trace_dispatch.py +0 -0
  168. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_traceproperty.py +0 -0
  169. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_utils.py +0 -0
  170. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_vars.py +0 -0
  171. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_vm_type.py +0 -0
  172. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_xml.py +0 -0
  173. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/.gitignore +0 -0
  174. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/__init__.py +0 -0
  175. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/pydevd_frame_eval_cython_wrapper.py +0 -0
  176. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/pydevd_frame_eval_main.py +0 -0
  177. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/pydevd_frame_evaluator.pxd +0 -0
  178. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/pydevd_frame_evaluator.pyx +0 -0
  179. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/pydevd_frame_evaluator.template.pyx +0 -0
  180. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/pydevd_frame_tracing.py +0 -0
  181. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/release_mem.h +0 -0
  182. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/README.txt +0 -0
  183. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/__init__.py +0 -0
  184. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode/__init__.py +0 -0
  185. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode/bytecode.py +0 -0
  186. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode/cfg.py +0 -0
  187. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode/flags.py +0 -0
  188. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode/instr.py +0 -0
  189. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode/peephole_opt.py +0 -0
  190. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode/tests/__init__.py +0 -0
  191. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode/tests/test_bytecode.py +0 -0
  192. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode/tests/test_cfg.py +0 -0
  193. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode/tests/test_code.py +0 -0
  194. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode/tests/test_concrete.py +0 -0
  195. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode/tests/test_flags.py +0 -0
  196. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode/tests/test_instr.py +0 -0
  197. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode/tests/test_misc.py +0 -0
  198. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode/tests/test_peephole_opt.py +0 -0
  199. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode/tests/util_annotation.py +0 -0
  200. /debugpy-1.8.7/src/debugpy/_vendored/pydevd/pydev_ipython/__init__.py → /debugpy-1.8.9/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode-0.13.0.dev0.dist-info/REQUESTED +0 -0
  201. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/pydevd_fix_code.py +0 -0
  202. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/_pydevd_sys_monitoring/_pydevd_sys_monitoring_cython.pxd +0 -0
  203. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/_pydevd_sys_monitoring/pydevd_sys_monitoring.py +0 -0
  204. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/pydev_app_engine_debug_startup.py +0 -0
  205. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/pydev_coverage.py +0 -0
  206. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/pydev_ipython/README +0 -0
  207. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/pydev_ipython/inputhook.py +0 -0
  208. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/pydev_ipython/inputhookglut.py +0 -0
  209. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/pydev_ipython/inputhookgtk.py +0 -0
  210. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/pydev_ipython/inputhookgtk3.py +0 -0
  211. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/pydev_ipython/inputhookpyglet.py +0 -0
  212. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/pydev_ipython/inputhooktk.py +0 -0
  213. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/pydev_ipython/inputhookwx.py +0 -0
  214. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/pydev_ipython/matplotlibtools.py +0 -0
  215. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/pydev_ipython/qt.py +0 -0
  216. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/pydev_ipython/qt_for_kernel.py +0 -0
  217. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/pydev_pysrc.py +0 -0
  218. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/pydev_run_in_console.py +0 -0
  219. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/pydev_sitecustomize/__not_in_default_pythonpath.txt +0 -0
  220. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/pydev_sitecustomize/sitecustomize.py +0 -0
  221. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/pydevconsole.py +0 -0
  222. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/README.txt +0 -0
  223. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/_always_live_program.py +0 -0
  224. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/_check.py +0 -0
  225. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/_test_attach_to_process.py +0 -0
  226. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/_test_attach_to_process_linux.py +0 -0
  227. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/attach_pydevd.py +0 -0
  228. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/common/py_custom_pyeval_settrace.hpp +0 -0
  229. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/common/py_custom_pyeval_settrace_310.hpp +0 -0
  230. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/common/py_custom_pyeval_settrace_311.hpp +0 -0
  231. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/common/py_custom_pyeval_settrace_common.hpp +0 -0
  232. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/common/py_utils.hpp +0 -0
  233. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/common/py_version.hpp +0 -0
  234. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/common/python.h +0 -0
  235. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/common/ref_utils.hpp +0 -0
  236. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/linux_and_mac/.gitignore +0 -0
  237. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/linux_and_mac/attach.cpp +0 -0
  238. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/linux_and_mac/compile_linux.sh +0 -0
  239. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/linux_and_mac/compile_mac.sh +0 -0
  240. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/linux_and_mac/compile_manylinux.cmd +0 -0
  241. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/linux_and_mac/lldb_prepare.py +0 -0
  242. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/__init__.py +0 -0
  243. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/breakpoint.py +0 -0
  244. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/compat.py +0 -0
  245. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/crash.py +0 -0
  246. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/debug.py +0 -0
  247. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/disasm.py +0 -0
  248. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/event.py +0 -0
  249. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/interactive.py +0 -0
  250. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/module.py +0 -0
  251. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/process.py +0 -0
  252. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/registry.py +0 -0
  253. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/search.py +0 -0
  254. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/sql.py +0 -0
  255. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/system.py +0 -0
  256. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/textio.py +0 -0
  257. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/thread.py +0 -0
  258. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/util.py +0 -0
  259. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/win32/__init__.py +0 -0
  260. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/win32/advapi32.py +0 -0
  261. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/win32/context_amd64.py +0 -0
  262. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/win32/context_i386.py +0 -0
  263. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/win32/dbghelp.py +0 -0
  264. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/win32/defines.py +0 -0
  265. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/win32/gdi32.py +0 -0
  266. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/win32/kernel32.py +0 -0
  267. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/win32/ntdll.py +0 -0
  268. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/win32/peb_teb.py +0 -0
  269. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/win32/psapi.py +0 -0
  270. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/win32/shell32.py +0 -0
  271. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/win32/shlwapi.py +0 -0
  272. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/win32/user32.py +0 -0
  273. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/win32/version.py +0 -0
  274. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/win32/wtsapi32.py +0 -0
  275. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/window.py +0 -0
  276. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/windows/attach.h +0 -0
  277. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/windows/inject_dll.cpp +0 -0
  278. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/windows/py_win_helpers.hpp +0 -0
  279. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/windows/run_code_in_memory.hpp +0 -0
  280. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/windows/run_code_on_dllmain.cpp +0 -0
  281. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/windows/stdafx.cpp +0 -0
  282. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/windows/stdafx.h +0 -0
  283. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/windows/targetver.h +0 -0
  284. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/pydevd_plugins/__init__.py +0 -0
  285. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/pydevd_plugins/extensions/README.md +0 -0
  286. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/pydevd_plugins/extensions/__init__.py +0 -0
  287. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/pydevd_plugins/extensions/types/__init__.py +0 -0
  288. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/pydevd_plugins/extensions/types/pydevd_helpers.py +0 -0
  289. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/pydevd_plugins/extensions/types/pydevd_plugin_numpy_types.py +0 -0
  290. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/pydevd_plugins/extensions/types/pydevd_plugin_pandas_types.py +0 -0
  291. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/pydevd_plugins/extensions/types/pydevd_plugins_django_form_str.py +0 -0
  292. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/pydevd_plugins/pydevd_line_validation.py +0 -0
  293. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/_vendored/pydevd/setup_pydevd_cython.py +0 -0
  294. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/adapter/__init__.py +0 -0
  295. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/adapter/__main__.py +0 -0
  296. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/adapter/clients.py +0 -0
  297. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/adapter/components.py +0 -0
  298. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/adapter/launchers.py +0 -0
  299. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/adapter/sessions.py +0 -0
  300. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/common/json.py +0 -0
  301. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/common/log.py +0 -0
  302. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/common/messaging.py +0 -0
  303. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/common/singleton.py +0 -0
  304. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/common/sockets.py +0 -0
  305. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/common/stacks.py +0 -0
  306. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/common/timestamp.py +0 -0
  307. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/common/util.py +0 -0
  308. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/launcher/__init__.py +0 -0
  309. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/launcher/__main__.py +0 -0
  310. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/launcher/handlers.py +0 -0
  311. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/launcher/output.py +0 -0
  312. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/launcher/winapi.py +0 -0
  313. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/public_api.py +0 -0
  314. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/server/__init__.py +0 -0
  315. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/server/attach_pid_injected.py +0 -0
  316. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy/server/cli.py +0 -0
  317. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy.egg-info/dependency_links.txt +0 -0
  318. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy.egg-info/entry_points.txt +0 -0
  319. {debugpy-1.8.7 → debugpy-1.8.9}/src/debugpy.egg-info/top_level.txt +0 -0
  320. {debugpy-1.8.7 → debugpy-1.8.9}/versioneer.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: debugpy
3
- Version: 1.8.7
3
+ Version: 1.8.9
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
@@ -64,7 +64,6 @@ exclude = [
64
64
  "versioneer.py",
65
65
  "src/debugpy/_vendored/pydevd"
66
66
  ]
67
- per-file-ignores = {}
68
67
 
69
68
  # Same as Black.
70
69
  line-length = 88
@@ -73,4 +72,8 @@ line-length = 88
73
72
  dummy-variable-rgx = "^(_+|(_+[a-zA-Z0-9_]*[a-zA-Z0-9]+?))$"
74
73
 
75
74
  # Assume Python 3.8
76
- target-version = "py38"
75
+ target-version = "py38"
76
+
77
+ [tool.ruff.per-file-ignores]
78
+ "tests/debugpy/test_breakpoints.py" = ["F841"]
79
+ "tests/debugpy/test_output.py" = ["F841"]
@@ -4,7 +4,14 @@ from _pydev_bundle._pydev_saved_modules import threading
4
4
  # circumstances).
5
5
  # It is required to debug threads started by start_new_thread in Python 3.4
6
6
  _temp = threading.Thread()
7
- if hasattr(_temp, "_is_stopped"): # Python 3.12 and earlier has this
7
+
8
+ if hasattr(_temp, "_handle") and hasattr(_temp, "_started"): # Python 3.13 and later has this
9
+
10
+ def is_thread_alive(t):
11
+ return not t._handle.is_done()
12
+
13
+
14
+ elif hasattr(_temp, "_is_stopped"): # Python 3.12 and earlier has this
8
15
 
9
16
  def is_thread_alive(t):
10
17
  return not t._is_stopped
@@ -12,17 +12,14 @@ from _pydevd_bundle.pydevd_constants import (
12
12
  set_global_debugger,
13
13
  DebugInfoHolder,
14
14
  PYDEVD_USE_SYS_MONITORING,
15
+ IS_PY313_OR_GREATER,
15
16
  )
16
17
  from _pydev_bundle import pydev_log
17
18
  from contextlib import contextmanager
18
19
  from _pydevd_bundle import pydevd_constants, pydevd_defaults
19
20
  from _pydevd_bundle.pydevd_defaults import PydevdCustomization
20
21
  import ast
21
-
22
- try:
23
- from pathlib import Path
24
- except ImportError:
25
- Path = None
22
+ from pathlib import Path
26
23
 
27
24
  # ===============================================================================
28
25
  # Things that are dependent on having the pydevd debugger
@@ -299,7 +296,7 @@ def remove_quotes_from_args(args):
299
296
  new_args = []
300
297
 
301
298
  for x in args:
302
- if Path is not None and isinstance(x, Path):
299
+ if isinstance(x, Path):
303
300
  x = str(x)
304
301
  else:
305
302
  if not isinstance(x, (bytes, str)):
@@ -316,7 +313,7 @@ def remove_quotes_from_args(args):
316
313
  else:
317
314
  new_args = []
318
315
  for x in args:
319
- if Path is not None and isinstance(x, Path):
316
+ if isinstance(x, Path):
320
317
  x = x.as_posix()
321
318
  else:
322
319
  if not isinstance(x, (bytes, str)):
@@ -1173,15 +1170,31 @@ threading_modules_to_patch = _get_threading_modules_to_patch()
1173
1170
 
1174
1171
 
1175
1172
  def patch_thread_module(thread_module):
1176
- if getattr(thread_module, "_original_start_new_thread", None) is None:
1177
- if thread_module is threading:
1178
- if not hasattr(thread_module, "_start_new_thread"):
1179
- return # Jython doesn't have it.
1180
- _original_start_new_thread = thread_module._original_start_new_thread = thread_module._start_new_thread
1173
+ # Note: this is needed not just for the tracing, but to have an early way to
1174
+ # notify that a thread was created (i.e.: tests_python.test_debugger_json.test_case_started_exited_threads_protocol)
1175
+ start_thread_attrs = ["_start_new_thread", "start_new_thread", "start_new"]
1176
+ start_joinable_attrs = ["start_joinable_thread", "_start_joinable_thread"]
1177
+ check = start_thread_attrs + start_joinable_attrs
1178
+
1179
+ replace_attrs = []
1180
+ for attr in check:
1181
+ if hasattr(thread_module, attr):
1182
+ replace_attrs.append(attr)
1183
+
1184
+ if not replace_attrs:
1185
+ return
1186
+
1187
+ for attr in replace_attrs:
1188
+ if attr in start_joinable_attrs:
1189
+ if getattr(thread_module, "_original_start_joinable_thread", None) is None:
1190
+ _original_start_joinable_thread = thread_module._original_start_joinable_thread = getattr(thread_module, attr)
1191
+ else:
1192
+ _original_start_joinable_thread = thread_module._original_start_joinable_thread
1181
1193
  else:
1182
- _original_start_new_thread = thread_module._original_start_new_thread = thread_module.start_new_thread
1183
- else:
1184
- _original_start_new_thread = thread_module._original_start_new_thread
1194
+ if getattr(thread_module, "_original_start_new_thread", None) is None:
1195
+ _original_start_new_thread = thread_module._original_start_new_thread = getattr(thread_module, attr)
1196
+ else:
1197
+ _original_start_new_thread = thread_module._original_start_new_thread
1185
1198
 
1186
1199
  class ClassWithPydevStartNewThread:
1187
1200
  def pydev_start_new_thread(self, function, args=(), kwargs={}):
@@ -1191,6 +1204,19 @@ def patch_thread_module(thread_module):
1191
1204
  """
1192
1205
  return _original_start_new_thread(_UseNewThreadStartup(function, args, kwargs), ())
1193
1206
 
1207
+ class ClassWithPydevStartJoinableThread:
1208
+ def pydev_start_joinable_thread(self, function, *args, **kwargs):
1209
+ """
1210
+ We need to replace the original thread_module._start_joinable_thread with this function so that threads started
1211
+ through it and not through the threading module are properly traced.
1212
+ """
1213
+ # Note: only handling the case from threading.py where the handle
1214
+ # and daemon flags are passed explicitly. This will fail if some user library
1215
+ # actually passes those without being a keyword argument!
1216
+ handle = kwargs.pop("handle", None)
1217
+ daemon = kwargs.pop("daemon", True)
1218
+ return _original_start_joinable_thread(_UseNewThreadStartup(function, args, kwargs), handle=handle, daemon=daemon)
1219
+
1194
1220
  # This is a hack for the situation where the thread_module.start_new_thread is declared inside a class, such as the one below
1195
1221
  # class F(object):
1196
1222
  # start_new_thread = thread_module.start_new_thread
@@ -1200,17 +1226,15 @@ def patch_thread_module(thread_module):
1200
1226
  # So, if it's an already bound method, calling self.start_new_thread won't really receive a different 'self' -- it
1201
1227
  # does work in the default case because in builtins self isn't passed either.
1202
1228
  pydev_start_new_thread = ClassWithPydevStartNewThread().pydev_start_new_thread
1229
+ pydev_start_joinable_thread = ClassWithPydevStartJoinableThread().pydev_start_joinable_thread
1203
1230
 
1204
- try:
1205
- # We need to replace the original thread_module.start_new_thread with this function so that threads started through
1206
- # it and not through the threading module are properly traced.
1207
- if thread_module is threading:
1208
- thread_module._start_new_thread = pydev_start_new_thread
1231
+ # We need to replace the original thread_module.start_new_thread with this function so that threads started through
1232
+ # it and not through the threading module are properly traced.
1233
+ for attr in replace_attrs:
1234
+ if attr in start_joinable_attrs:
1235
+ setattr(thread_module, attr, pydev_start_joinable_thread)
1209
1236
  else:
1210
- thread_module.start_new_thread = pydev_start_new_thread
1211
- thread_module.start_new = pydev_start_new_thread
1212
- except:
1213
- pass
1237
+ setattr(thread_module, attr, pydev_start_new_thread)
1214
1238
 
1215
1239
 
1216
1240
  def patch_thread_modules():
@@ -1235,6 +1259,16 @@ def undo_patch_thread_modules():
1235
1259
  except:
1236
1260
  pass
1237
1261
 
1262
+ try:
1263
+ t._start_joinable_thread = t._original_start_joinable_thread
1264
+ except:
1265
+ pass
1266
+
1267
+ try:
1268
+ t.start_joinable_thread = t._original_start_joinable_thread
1269
+ except:
1270
+ pass
1271
+
1238
1272
 
1239
1273
  def disable_trace_thread_modules():
1240
1274
  """
@@ -203,7 +203,7 @@ def _encode_if_needed(obj):
203
203
 
204
204
  elif isinstance(obj, bytes):
205
205
  try:
206
- return xmlrpclib.Binary(obj.decode(sys.stdin.encoding, 'replace').encode("ISO-8859-1", "xmlcharrefreplace"))
206
+ return xmlrpclib.Binary(obj.decode(sys.stdin.encoding, "replace").encode("ISO-8859-1", "xmlcharrefreplace"))
207
207
  except:
208
208
  return xmlrpclib.Binary(obj) # bytes already
209
209
 
@@ -458,7 +458,9 @@ def update_class_to_generate_init(class_to_generate):
458
458
  # Note: added kwargs because some messages are expected to be extended by the user (so, we'll actually
459
459
  # make all extendable so that we don't have to worry about which ones -- we loose a little on typing,
460
460
  # but may be better than doing a allow list based on something only pointed out in the documentation).
461
- class_to_generate["init"] = '''def __init__(self%(args)s, update_ids_from_dap=False, **kwargs): # noqa (update_ids_from_dap may be unused)
461
+ class_to_generate[
462
+ "init"
463
+ ] = '''def __init__(self%(args)s, update_ids_from_dap=False, **kwargs): # noqa (update_ids_from_dap may be unused)
462
464
  """
463
465
  %(docstring)s
464
466
  """
@@ -83,7 +83,8 @@ else:
83
83
  # bodies of nested class and function definitions, as they have their
84
84
  # own objects.
85
85
  for _, lineno in dis.findlinestarts(code):
86
- yield lineno
86
+ if lineno is not None:
87
+ yield lineno
87
88
 
88
89
  # For nested class and function definitions, their respective code objects
89
90
  # are constants referenced by this object.
@@ -529,8 +529,7 @@ class _PyCodeToSource(object):
529
529
  instruction = instructions[0]
530
530
  new_line_index = op_offset_to_line.get(instruction.offset)
531
531
  if new_line_index is not None:
532
- if new_line_index is not None:
533
- curr_line_index = new_line_index
532
+ curr_line_index = new_line_index
534
533
 
535
534
  self._process_next(curr_line_index)
536
535
  return self.writer.line_to_contents
@@ -82,125 +82,8 @@ def debug(s):
82
82
  _Instruction = namedtuple("_Instruction", "opname, opcode, starts_line, argval, is_jump_target, offset, argrepr")
83
83
 
84
84
 
85
- def _iter_as_bytecode_as_instructions_py2(co):
86
- code = co.co_code
87
- op_offset_to_line = dict(dis.findlinestarts(co))
88
- labels = set(dis.findlabels(code))
89
- bytecode_len = len(code)
90
- i = 0
91
- extended_arg = 0
92
- free = None
93
-
94
- op_to_name = opname
95
-
96
- while i < bytecode_len:
97
- c = code[i]
98
- op = ord(c)
99
- is_jump_target = i in labels
100
-
101
- curr_op_name = op_to_name[op]
102
- initial_bytecode_offset = i
103
-
104
- i = i + 1
105
- if op < HAVE_ARGUMENT:
106
- yield _Instruction(
107
- curr_op_name,
108
- op,
109
- _get_line(op_offset_to_line, initial_bytecode_offset, 0),
110
- None,
111
- is_jump_target,
112
- initial_bytecode_offset,
113
- "",
114
- )
115
-
116
- else:
117
- oparg = ord(code[i]) + ord(code[i + 1]) * 256 + extended_arg
118
-
119
- extended_arg = 0
120
- i = i + 2
121
- if op == EXTENDED_ARG:
122
- extended_arg = oparg * 65536
123
-
124
- if op in hasconst:
125
- yield _Instruction(
126
- curr_op_name,
127
- op,
128
- _get_line(op_offset_to_line, initial_bytecode_offset, 0),
129
- co.co_consts[oparg],
130
- is_jump_target,
131
- initial_bytecode_offset,
132
- repr(co.co_consts[oparg]),
133
- )
134
- elif op in hasname:
135
- yield _Instruction(
136
- curr_op_name,
137
- op,
138
- _get_line(op_offset_to_line, initial_bytecode_offset, 0),
139
- co.co_names[oparg],
140
- is_jump_target,
141
- initial_bytecode_offset,
142
- str(co.co_names[oparg]),
143
- )
144
- elif op in hasjrel:
145
- argval = i + oparg
146
- yield _Instruction(
147
- curr_op_name,
148
- op,
149
- _get_line(op_offset_to_line, initial_bytecode_offset, 0),
150
- argval,
151
- is_jump_target,
152
- initial_bytecode_offset,
153
- "to " + repr(argval),
154
- )
155
- elif op in haslocal:
156
- yield _Instruction(
157
- curr_op_name,
158
- op,
159
- _get_line(op_offset_to_line, initial_bytecode_offset, 0),
160
- co.co_varnames[oparg],
161
- is_jump_target,
162
- initial_bytecode_offset,
163
- str(co.co_varnames[oparg]),
164
- )
165
- elif op in hascompare:
166
- yield _Instruction(
167
- curr_op_name,
168
- op,
169
- _get_line(op_offset_to_line, initial_bytecode_offset, 0),
170
- cmp_op[oparg],
171
- is_jump_target,
172
- initial_bytecode_offset,
173
- cmp_op[oparg],
174
- )
175
- elif op in hasfree:
176
- if free is None:
177
- free = co.co_cellvars + co.co_freevars
178
- yield _Instruction(
179
- curr_op_name,
180
- op,
181
- _get_line(op_offset_to_line, initial_bytecode_offset, 0),
182
- free[oparg],
183
- is_jump_target,
184
- initial_bytecode_offset,
185
- str(free[oparg]),
186
- )
187
- else:
188
- yield _Instruction(
189
- curr_op_name,
190
- op,
191
- _get_line(op_offset_to_line, initial_bytecode_offset, 0),
192
- oparg,
193
- is_jump_target,
194
- initial_bytecode_offset,
195
- str(oparg),
196
- )
197
-
198
-
199
85
  def iter_instructions(co):
200
- if sys.version_info[0] < 3:
201
- iter_in = _iter_as_bytecode_as_instructions_py2(co)
202
- else:
203
- iter_in = dis.Bytecode(co)
86
+ iter_in = dis.Bytecode(co)
204
87
  iter_in = list(iter_in)
205
88
 
206
89
  bytecode_to_instruction = {}
@@ -327,7 +210,7 @@ if sys.version_info[:2] <= (3, 9):
327
210
 
328
211
  try_except_info_lst = []
329
212
 
330
- op_offset_to_line = dict(dis.findlinestarts(co))
213
+ op_offset_to_line = dict(entry for entry in dis.findlinestarts(co) if entry[1] is not None)
331
214
 
332
215
  offset_to_instruction_idx = {}
333
216
 
@@ -445,7 +328,7 @@ elif sys.version_info[:2] == (3, 10):
445
328
 
446
329
  try_except_info_lst = []
447
330
 
448
- op_offset_to_line = dict(dis.findlinestarts(co))
331
+ op_offset_to_line = dict(entry for entry in dis.findlinestarts(co) if entry[1] is not None)
449
332
 
450
333
  offset_to_instruction_idx = {}
451
334
 
@@ -645,7 +528,7 @@ class _Disassembler(object):
645
528
  self.firstlineno = firstlineno
646
529
  self.level = level
647
530
  self.instructions = list(iter_instructions(co))
648
- op_offset_to_line = self.op_offset_to_line = dict(dis.findlinestarts(co))
531
+ op_offset_to_line = self.op_offset_to_line = dict(entry for entry in dis.findlinestarts(co) if entry[1] is not None)
649
532
 
650
533
  # Update offsets so that all offsets have the line index (and update it based on
651
534
  # the passed firstlineno).
@@ -846,6 +729,8 @@ class _Disassembler(object):
846
729
  argrepr = instruction.argrepr
847
730
  if isinstance(argrepr, str) and argrepr.startswith("NULL + "):
848
731
  argrepr = argrepr[7:]
732
+ if isinstance(argrepr, str) and argrepr.endswith("+ NULL"):
733
+ argrepr = argrepr[:-7]
849
734
  return _MsgPart(line, tok if tok is not None else dec(instruction, argrepr))
850
735
 
851
736
  def _next_instruction_to_str(self, line_to_contents):
@@ -1140,7 +1140,8 @@ def internal_get_next_statement_targets(dbg, seq, thread_id, frame_id):
1140
1140
  xml += "<line>%d</line>" % (frame.f_lineno,)
1141
1141
  else:
1142
1142
  for _, line in linestarts:
1143
- xml += "<line>%d</line>" % (line,)
1143
+ if line is not None:
1144
+ xml += "<line>%d</line>" % (line,)
1144
1145
  del frame
1145
1146
  xml += "</xml>"
1146
1147
  cmd = dbg.cmd_factory.make_get_next_statement_targets_message(seq, xml)
@@ -1342,8 +1343,8 @@ def internal_evaluate_expression(dbg, seq, thread_id, frame_id, expression, is_e
1342
1343
  dbg.writer.add_command(cmd)
1343
1344
 
1344
1345
 
1345
- def _set_expression_response(py_db, request, result, error_message):
1346
- body = pydevd_schema.SetExpressionResponseBody(result="", variablesReference=0)
1346
+ def _set_expression_response(py_db, request, error_message):
1347
+ body = pydevd_schema.SetExpressionResponseBody(value="")
1347
1348
  variables_response = pydevd_base_schema.build_response(request, kwargs={"body": body, "success": False, "message": error_message})
1348
1349
  py_db.writer.add_command(NetCommand(CMD_RETURN, 0, variables_response, is_json=True))
1349
1350
 
@@ -1361,18 +1362,17 @@ def internal_set_expression_json(py_db, request, thread_id):
1361
1362
 
1362
1363
  frame = py_db.find_frame(thread_id, frame_id)
1363
1364
  exec_code = "%s = (%s)" % (expression, value)
1364
- result = pydevd_vars.evaluate_expression(py_db, frame, exec_code, is_exec=True)
1365
- is_error = isinstance(result, ExceptionOnEvaluate)
1366
-
1367
- if is_error:
1368
- _set_expression_response(py_db, request, result, error_message="Error executing: %s" % (exec_code,))
1365
+ try:
1366
+ pydevd_vars.evaluate_expression(py_db, frame, exec_code, is_exec=True)
1367
+ except (Exception, KeyboardInterrupt):
1368
+ _set_expression_response(py_db, request, error_message="Error executing: %s" % (exec_code,))
1369
1369
  return
1370
1370
 
1371
1371
  # Ok, we have the result (could be an error), let's put it into the saved variables.
1372
1372
  frame_tracker = py_db.suspended_frames_manager.get_frame_tracker(thread_id)
1373
1373
  if frame_tracker is None:
1374
1374
  # This is not really expected.
1375
- _set_expression_response(py_db, request, result, error_message="Thread id: %s is not current thread id." % (thread_id,))
1375
+ _set_expression_response(py_db, request, error_message="Thread id: %s is not current thread id." % (thread_id,))
1376
1376
  return
1377
1377
 
1378
1378
  # Now that the exec is done, get the actual value changed to return.
@@ -1,6 +1,7 @@
1
1
  """
2
2
  This module holds the constants used for specifying the states of the debugger.
3
3
  """
4
+
4
5
  from __future__ import nested_scopes
5
6
  import platform
6
7
  import weakref
@@ -176,6 +177,13 @@ IS_PY312_OR_GREATER = sys.version_info >= (3, 12)
176
177
  IS_PY313_OR_GREATER = sys.version_info >= (3, 13)
177
178
  IS_PY314_OR_GREATER = sys.version_info >= (3, 14)
178
179
 
180
+ # Bug affecting Python 3.13.0 specifically makes some tests crash the interpreter!
181
+ # Hopefully it'll be fixed in 3.13.1.
182
+ IS_PY313_0 = sys.version_info[:3] == (3, 13, 0)
183
+
184
+ # Mark tests that need to be fixed with this.
185
+ TODO_PY313_OR_GREATER = IS_PY313_OR_GREATER
186
+
179
187
  # Not currently supported in Python 3.14.
180
188
  SUPPORT_ATTACH_TO_PID = not IS_PY314_OR_GREATER
181
189