debugpy 1.8.5__zip → 1.8.7__zip

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (340) hide show
  1. {debugpy-1.8.5/src/debugpy.egg-info → debugpy-1.8.7}/PKG-INFO +1 -1
  2. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydev_bundle/_pydev_calltip_util.py +19 -21
  3. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydev_bundle/_pydev_completer.py +30 -30
  4. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydev_bundle/_pydev_execfile.py +3 -1
  5. debugpy-1.8.7/src/debugpy/_vendored/pydevd/_pydev_bundle/_pydev_filesystem_encoding.py +43 -0
  6. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydev_bundle/_pydev_getopt.py +35 -32
  7. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydev_bundle/_pydev_imports_tipper.py +83 -84
  8. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydev_bundle/_pydev_jy_imports_tipper.py +92 -99
  9. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydev_bundle/_pydev_log.py +2 -3
  10. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydev_bundle/_pydev_saved_modules.py +51 -27
  11. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydev_bundle/_pydev_sys_patch.py +11 -7
  12. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydev_bundle/_pydev_tipper_common.py +6 -5
  13. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydev_bundle/fsnotify/__init__.py +34 -38
  14. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydev_bundle/pydev_console_utils.py +71 -69
  15. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydev_bundle/pydev_import_hook.py +1 -3
  16. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydev_bundle/pydev_imports.py +0 -1
  17. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydev_bundle/pydev_ipython_console.py +14 -16
  18. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydev_bundle/pydev_ipython_console_011.py +81 -93
  19. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydev_bundle/pydev_is_thread_alive.py +3 -3
  20. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydev_bundle/pydev_localhost.py +9 -8
  21. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydev_bundle/pydev_log.py +33 -25
  22. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydev_bundle/pydev_monkey.py +183 -170
  23. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydev_bundle/pydev_monkey_qt.py +33 -29
  24. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydev_bundle/pydev_override.py +6 -4
  25. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydev_bundle/pydev_umd.py +19 -18
  26. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydev_bundle/pydev_versioncheck.py +3 -3
  27. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydev_runfiles/pydev_runfiles.py +165 -138
  28. debugpy-1.8.7/src/debugpy/_vendored/pydevd/_pydev_runfiles/pydev_runfiles_coverage.py +77 -0
  29. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydev_runfiles/pydev_runfiles_nose.py +35 -36
  30. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydev_runfiles/pydev_runfiles_parallel.py +22 -23
  31. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydev_runfiles/pydev_runfiles_parallel_client.py +37 -57
  32. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydev_runfiles/pydev_runfiles_pytest2.py +54 -52
  33. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydev_runfiles/pydev_runfiles_unittest.py +28 -37
  34. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydev_runfiles/pydev_runfiles_xml_rpc.py +56 -53
  35. debugpy-1.8.7/src/debugpy/_vendored/pydevd/_pydevd_bundle/_debug_adapter/__main__pydevd_gen_debug_adapter_protocol.py +604 -0
  36. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/_debug_adapter/debugProtocol.json +551 -445
  37. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/_debug_adapter/pydevd_base_schema.py +25 -29
  38. debugpy-1.8.7/src/debugpy/_vendored/pydevd/_pydevd_bundle/_debug_adapter/pydevd_schema.py +17458 -0
  39. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/_debug_adapter/pydevd_schema_log.py +11 -12
  40. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevconsole_code.py +18 -19
  41. debugpy-1.8.7/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_additional_thread_info.py +41 -0
  42. debugpy-1.8.7/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_additional_thread_info_regular.py +328 -0
  43. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_api.py +263 -214
  44. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_breakpoints.py +7 -10
  45. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_bytecode_utils.py +187 -92
  46. debugpy-1.8.7/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_bytecode_utils_py311.py +105 -0
  47. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_code_to_source.py +46 -51
  48. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_collect_bytecode_info.py +239 -176
  49. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_comm.py +370 -297
  50. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_comm_constants.py +78 -86
  51. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_command_line_handling.py +55 -59
  52. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_concurrency_analyser/pydevd_concurrency_logger.py +194 -58
  53. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_concurrency_analyser/pydevd_thread_wrappers.py +2 -3
  54. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_console.py +18 -23
  55. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_constants.py +159 -127
  56. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_custom_frames.py +10 -12
  57. debugpy-1.8.7/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_cython.c +55527 -0
  58. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_cython.pxd +15 -0
  59. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_cython.pyx +803 -511
  60. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_cython_wrapper.py +18 -7
  61. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_daemon_thread.py +32 -24
  62. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_defaults.py +11 -13
  63. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_dont_trace.py +16 -16
  64. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_dont_trace_files.py +27 -2
  65. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_exec2.py +1 -1
  66. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_extension_api.py +4 -5
  67. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_extension_utils.py +8 -10
  68. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_filtering.py +50 -45
  69. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_frame.py +462 -407
  70. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_frame_utils.py +69 -61
  71. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_gevent_integration.py +14 -16
  72. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_import_class.py +27 -25
  73. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_io.py +40 -42
  74. debugpy-1.8.7/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_json_debug_options.py +200 -0
  75. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_net_command.py +20 -19
  76. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_net_command_factory_json.py +199 -108
  77. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_net_command_factory_xml.py +121 -73
  78. debugpy-1.8.7/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_plugin_utils.py +208 -0
  79. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_process_net_command.py +206 -159
  80. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_process_net_command_json.py +346 -334
  81. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_referrers.py +75 -80
  82. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_reload.py +35 -35
  83. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_resolver.py +116 -124
  84. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_runpy.py +44 -58
  85. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_safe_repr.py +51 -55
  86. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_save_locals.py +4 -2
  87. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_signature.py +24 -24
  88. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_source_mapping.py +19 -20
  89. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_stackless.py +45 -49
  90. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_suspended_frames.py +61 -58
  91. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_thread_lifecycle.py +23 -13
  92. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_timeout.py +29 -31
  93. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_trace_dispatch.py +41 -11
  94. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_trace_dispatch_regular.py +117 -55
  95. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_traceproperty.py +11 -14
  96. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_utils.py +90 -89
  97. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_vars.py +106 -97
  98. debugpy-1.8.7/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_vm_type.py +40 -0
  99. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_xml.py +56 -46
  100. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/pydevd_frame_eval_cython_wrapper.py +5 -5
  101. debugpy-1.8.7/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/pydevd_frame_eval_main.py +71 -0
  102. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/pydevd_frame_evaluator.c +11165 -5326
  103. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/pydevd_frame_tracing.py +5 -6
  104. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/pydevd_modify_bytecode.py +53 -56
  105. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode/__init__.py +1 -0
  106. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode/bytecode.py +4 -6
  107. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode/cfg.py +6 -26
  108. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode/concrete.py +7 -21
  109. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode/flags.py +5 -24
  110. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode/instr.py +10 -34
  111. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode/peephole_opt.py +1 -4
  112. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode/tests/__init__.py +2 -6
  113. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode/tests/test_bytecode.py +3 -5
  114. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode/tests/test_cfg.py +11 -31
  115. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode/tests/test_code.py +2 -2
  116. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode/tests/test_concrete.py +14 -41
  117. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode/tests/test_flags.py +2 -4
  118. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode/tests/test_instr.py +7 -18
  119. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode/tests/test_misc.py +6 -18
  120. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode/tests/test_peephole_opt.py +7 -18
  121. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode/tests/util_annotation.py +1 -3
  122. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/pydevd_fix_code.py +14 -19
  123. debugpy-1.8.7/src/debugpy/_vendored/pydevd/_pydevd_sys_monitoring/_pydevd_sys_monitoring.py +1929 -0
  124. debugpy-1.8.7/src/debugpy/_vendored/pydevd/_pydevd_sys_monitoring/_pydevd_sys_monitoring_cython.c +43253 -0
  125. debugpy-1.8.7/src/debugpy/_vendored/pydevd/_pydevd_sys_monitoring/_pydevd_sys_monitoring_cython.pxd +46 -0
  126. debugpy-1.8.7/src/debugpy/_vendored/pydevd/_pydevd_sys_monitoring/_pydevd_sys_monitoring_cython.pyx +1935 -0
  127. debugpy-1.8.7/src/debugpy/_vendored/pydevd/_pydevd_sys_monitoring/pydevd_sys_monitoring.py +16 -0
  128. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydev_app_engine_debug_startup.py +12 -11
  129. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydev_coverage.py +30 -32
  130. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydev_ipython/inputhook.py +58 -54
  131. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydev_ipython/inputhookglut.py +20 -24
  132. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydev_ipython/inputhookgtk.py +8 -7
  133. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydev_ipython/inputhookgtk3.py +8 -6
  134. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydev_ipython/inputhookpyglet.py +11 -8
  135. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydev_ipython/inputhookqt4.py +21 -18
  136. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydev_ipython/inputhookqt5.py +17 -15
  137. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydev_ipython/inputhookqt6.py +17 -15
  138. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydev_ipython/inputhooktk.py +6 -4
  139. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydev_ipython/inputhookwx.py +14 -10
  140. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydev_ipython/matplotlibtools.py +30 -26
  141. debugpy-1.8.7/src/debugpy/_vendored/pydevd/pydev_ipython/qt.py +24 -0
  142. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydev_ipython/qt_for_kernel.py +37 -34
  143. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydev_ipython/qt_loaders.py +86 -73
  144. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydev_ipython/version.py +7 -7
  145. debugpy-1.8.7/src/debugpy/_vendored/pydevd/pydev_pysrc.py +1 -0
  146. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydev_run_in_console.py +23 -24
  147. debugpy-1.8.7/src/debugpy/_vendored/pydevd/pydev_sitecustomize/sitecustomize.py +267 -0
  148. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevconsole.py +55 -47
  149. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd.py +732 -508
  150. debugpy-1.8.7/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/_always_live_program.py +40 -0
  151. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/_check.py +1 -0
  152. debugpy-1.8.7/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/_test_attach_to_process.py +11 -0
  153. debugpy-1.8.7/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/_test_attach_to_process_linux.py +75 -0
  154. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/add_code_to_python_process.py +130 -125
  155. debugpy-1.8.7/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/attach_amd64.dll +0 -0
  156. debugpy-1.8.7/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/attach_amd64.pdb +0 -0
  157. debugpy-1.8.7/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/attach_pydevd.py +89 -0
  158. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/attach_script.py +41 -32
  159. debugpy-1.8.7/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/attach_x86.dll +0 -0
  160. debugpy-1.8.7/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/attach_x86.pdb +0 -0
  161. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/common/py_utils.hpp +1 -0
  162. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/common/py_version.hpp +9 -1
  163. debugpy-1.8.7/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/inject_dll_amd64.exe +0 -0
  164. debugpy-1.8.7/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/inject_dll_amd64.pdb +0 -0
  165. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/inject_dll_x86.exe +0 -0
  166. debugpy-1.8.7/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/inject_dll_x86.pdb +0 -0
  167. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/linux_and_mac/lldb_prepare.py +10 -9
  168. debugpy-1.8.7/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/run_code_on_dllmain_amd64.dll +0 -0
  169. debugpy-1.8.7/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/run_code_on_dllmain_amd64.pdb +0 -0
  170. debugpy-1.8.7/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/run_code_on_dllmain_x86.dll +0 -0
  171. debugpy-1.8.7/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/run_code_on_dllmain_x86.pdb +0 -0
  172. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/__init__.py +103 -119
  173. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/breakpoint.py +457 -516
  174. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/compat.py +33 -15
  175. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/crash.py +336 -281
  176. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/debug.py +101 -131
  177. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/disasm.py +148 -153
  178. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/event.py +310 -302
  179. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/interactive.py +235 -208
  180. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/module.py +185 -218
  181. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/process.py +428 -564
  182. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/registry.py +54 -53
  183. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/search.py +69 -73
  184. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/sql.py +158 -170
  185. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/system.py +143 -213
  186. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/textio.py +302 -333
  187. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/thread.py +220 -239
  188. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/util.py +198 -177
  189. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/win32/__init__.py +11 -11
  190. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/win32/advapi32.py +1191 -713
  191. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/win32/context_amd64.py +248 -194
  192. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/win32/context_i386.py +132 -120
  193. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/win32/dbghelp.py +450 -346
  194. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/win32/defines.py +305 -286
  195. debugpy-1.8.7/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/win32/gdi32.py +526 -0
  196. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/win32/kernel32.py +1479 -1097
  197. debugpy-1.8.7/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/win32/ntdll.py +579 -0
  198. debugpy-1.8.7/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/win32/peb_teb.py +3517 -0
  199. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/win32/psapi.py +54 -31
  200. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/win32/shell32.py +170 -149
  201. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/win32/shlwapi.py +190 -108
  202. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/win32/user32.py +542 -437
  203. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/win32/version.py +489 -442
  204. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/win32/wtsapi32.py +83 -65
  205. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/window.py +70 -76
  206. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/windows/attach.cpp +17 -9
  207. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/windows/compile_windows.bat +1 -1
  208. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_file_utils.py +141 -120
  209. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_plugins/__init__.py +1 -0
  210. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_plugins/django_debug.py +175 -149
  211. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_plugins/extensions/__init__.py +1 -0
  212. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_plugins/extensions/types/__init__.py +1 -0
  213. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_plugins/extensions/types/pydevd_helpers.py +5 -5
  214. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_plugins/extensions/types/pydevd_plugin_numpy_types.py +28 -28
  215. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_plugins/extensions/types/pydevd_plugin_pandas_types.py +22 -30
  216. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_plugins/extensions/types/pydevd_plugins_django_form_str.py +3 -2
  217. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_plugins/jinja2_debug.py +130 -108
  218. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_plugins/pydevd_line_validation.py +27 -14
  219. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_tracing.py +85 -66
  220. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/setup_pydevd_cython.py +96 -59
  221. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_version.py +3 -3
  222. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/common/messaging.py +2 -1
  223. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/server/cli.py +32 -17
  224. {debugpy-1.8.5 → debugpy-1.8.7/src/debugpy.egg-info}/PKG-INFO +1 -1
  225. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy.egg-info/SOURCES.txt +6 -1
  226. debugpy-1.8.5/src/debugpy/_vendored/pydevd/_pydev_bundle/_pydev_filesystem_encoding.py +0 -41
  227. debugpy-1.8.5/src/debugpy/_vendored/pydevd/_pydev_runfiles/pydev_runfiles_coverage.py +0 -76
  228. debugpy-1.8.5/src/debugpy/_vendored/pydevd/_pydevd_bundle/_debug_adapter/__main__pydevd_gen_debug_adapter_protocol.py +0 -592
  229. debugpy-1.8.5/src/debugpy/_vendored/pydevd/_pydevd_bundle/_debug_adapter/pydevd_schema.py +0 -19514
  230. debugpy-1.8.5/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_additional_thread_info.py +0 -19
  231. debugpy-1.8.5/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_additional_thread_info_regular.py +0 -153
  232. debugpy-1.8.5/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_cython.c +0 -43377
  233. debugpy-1.8.5/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_json_debug_options.py +0 -204
  234. debugpy-1.8.5/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_plugin_utils.py +0 -91
  235. debugpy-1.8.5/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_trace_api.py +0 -62
  236. debugpy-1.8.5/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_vm_type.py +0 -41
  237. debugpy-1.8.5/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/pydevd_frame_eval_main.py +0 -48
  238. debugpy-1.8.5/src/debugpy/_vendored/pydevd/pydev_ipython/qt.py +0 -23
  239. debugpy-1.8.5/src/debugpy/_vendored/pydevd/pydev_pysrc.py +0 -1
  240. debugpy-1.8.5/src/debugpy/_vendored/pydevd/pydev_sitecustomize/sitecustomize.py +0 -237
  241. debugpy-1.8.5/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/_always_live_program.py +0 -32
  242. debugpy-1.8.5/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/_test_attach_to_process.py +0 -9
  243. debugpy-1.8.5/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/_test_attach_to_process_linux.py +0 -74
  244. debugpy-1.8.5/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/attach_amd64.dll +0 -0
  245. debugpy-1.8.5/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/attach_amd64.pdb +0 -0
  246. debugpy-1.8.5/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/attach_pydevd.py +0 -79
  247. debugpy-1.8.5/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/attach_x86.dll +0 -0
  248. debugpy-1.8.5/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/attach_x86.pdb +0 -0
  249. debugpy-1.8.5/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/inject_dll_amd64.exe +0 -0
  250. debugpy-1.8.5/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/inject_dll_amd64.pdb +0 -0
  251. debugpy-1.8.5/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/inject_dll_x86.pdb +0 -0
  252. debugpy-1.8.5/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/run_code_on_dllmain_amd64.dll +0 -0
  253. debugpy-1.8.5/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/run_code_on_dllmain_amd64.pdb +0 -0
  254. debugpy-1.8.5/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/run_code_on_dllmain_x86.dll +0 -0
  255. debugpy-1.8.5/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/run_code_on_dllmain_x86.pdb +0 -0
  256. debugpy-1.8.5/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/win32/gdi32.py +0 -507
  257. debugpy-1.8.5/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/win32/ntdll.py +0 -539
  258. debugpy-1.8.5/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/win32/peb_teb.py +0 -3435
  259. {debugpy-1.8.5 → debugpy-1.8.7}/DESCRIPTION.md +0 -0
  260. {debugpy-1.8.5 → debugpy-1.8.7}/LICENSE +0 -0
  261. {debugpy-1.8.5 → debugpy-1.8.7}/MANIFEST.in +0 -0
  262. {debugpy-1.8.5 → debugpy-1.8.7}/README.md +0 -0
  263. {debugpy-1.8.5 → debugpy-1.8.7}/pyproject.toml +0 -0
  264. {debugpy-1.8.5 → debugpy-1.8.7}/setup.cfg +0 -0
  265. {debugpy-1.8.5 → debugpy-1.8.7}/setup.py +0 -0
  266. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/ThirdPartyNotices.txt +0 -0
  267. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/__init__.py +0 -0
  268. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/__main__.py +0 -0
  269. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/__init__.py +0 -0
  270. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/_pydevd_packaging.py +0 -0
  271. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/_util.py +0 -0
  272. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/force_pydevd.py +0 -0
  273. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydev_bundle/__init__.py +0 -0
  274. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydev_runfiles/__init__.py +0 -0
  275. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/__init__.py +0 -0
  276. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/_debug_adapter/__init__.py +0 -0
  277. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/_debug_adapter/debugProtocolCustom.json +0 -0
  278. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_concurrency_analyser/__init__.py +0 -0
  279. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/.gitignore +0 -0
  280. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/__init__.py +0 -0
  281. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/pydevd_frame_evaluator.pxd +0 -0
  282. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/pydevd_frame_evaluator.pyx +0 -0
  283. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/pydevd_frame_evaluator.template.pyx +0 -0
  284. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/release_mem.h +0 -0
  285. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/README.txt +0 -0
  286. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/__init__.py +0 -0
  287. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydev_ipython/README +0 -0
  288. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydev_ipython/__init__.py +0 -0
  289. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydev_sitecustomize/__not_in_default_pythonpath.txt +0 -0
  290. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/README.txt +0 -0
  291. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/common/py_custom_pyeval_settrace.hpp +0 -0
  292. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/common/py_custom_pyeval_settrace_310.hpp +0 -0
  293. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/common/py_custom_pyeval_settrace_311.hpp +0 -0
  294. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/common/py_custom_pyeval_settrace_common.hpp +0 -0
  295. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/common/py_settrace.hpp +0 -0
  296. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/common/python.h +0 -0
  297. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/common/ref_utils.hpp +0 -0
  298. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/linux_and_mac/.gitignore +0 -0
  299. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/linux_and_mac/attach.cpp +0 -0
  300. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/linux_and_mac/compile_linux.sh +0 -0
  301. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/linux_and_mac/compile_mac.sh +0 -0
  302. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/linux_and_mac/compile_manylinux.cmd +0 -0
  303. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/windows/attach.h +0 -0
  304. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/windows/inject_dll.cpp +0 -0
  305. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/windows/py_win_helpers.hpp +0 -0
  306. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/windows/run_code_in_memory.hpp +0 -0
  307. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/windows/run_code_on_dllmain.cpp +0 -0
  308. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/windows/stdafx.cpp +0 -0
  309. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/windows/stdafx.h +0 -0
  310. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/windows/targetver.h +0 -0
  311. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_plugins/extensions/README.md +0 -0
  312. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/adapter/__init__.py +0 -0
  313. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/adapter/__main__.py +0 -0
  314. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/adapter/clients.py +0 -0
  315. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/adapter/components.py +0 -0
  316. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/adapter/launchers.py +0 -0
  317. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/adapter/servers.py +0 -0
  318. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/adapter/sessions.py +0 -0
  319. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/common/__init__.py +0 -0
  320. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/common/json.py +0 -0
  321. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/common/log.py +0 -0
  322. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/common/singleton.py +0 -0
  323. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/common/sockets.py +0 -0
  324. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/common/stacks.py +0 -0
  325. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/common/timestamp.py +0 -0
  326. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/common/util.py +0 -0
  327. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/launcher/__init__.py +0 -0
  328. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/launcher/__main__.py +0 -0
  329. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/launcher/debuggee.py +0 -0
  330. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/launcher/handlers.py +0 -0
  331. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/launcher/output.py +0 -0
  332. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/launcher/winapi.py +0 -0
  333. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/public_api.py +0 -0
  334. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/server/__init__.py +0 -0
  335. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/server/api.py +0 -0
  336. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/server/attach_pid_injected.py +0 -0
  337. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy.egg-info/dependency_links.txt +0 -0
  338. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy.egg-info/entry_points.txt +0 -0
  339. {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy.egg-info/top_level.txt +0 -0
  340. {debugpy-1.8.5 → debugpy-1.8.7}/versioneer.py +0 -0
@@ -10,26 +10,50 @@ import pydevd_file_utils
10
10
  from _pydev_bundle import pydev_log
11
11
  from _pydevd_bundle._debug_adapter import pydevd_base_schema, pydevd_schema
12
12
  from _pydevd_bundle._debug_adapter.pydevd_schema import (
13
- CompletionsResponseBody, EvaluateResponseBody, ExceptionOptions,
14
- GotoTargetsResponseBody, ModulesResponseBody, ProcessEventBody,
15
- ProcessEvent, Scope, ScopesResponseBody, SetExpressionResponseBody,
16
- SetVariableResponseBody, SourceBreakpoint, SourceResponseBody,
17
- VariablesResponseBody, SetBreakpointsResponseBody, Response,
18
- Capabilities, PydevdAuthorizeRequest, Request,
19
- StepInTargetsResponseBody, SetFunctionBreakpointsResponseBody, BreakpointEvent,
20
- BreakpointEventBody, InitializedEvent)
13
+ CompletionsResponseBody,
14
+ EvaluateResponseBody,
15
+ ExceptionOptions,
16
+ GotoTargetsResponseBody,
17
+ ModulesResponseBody,
18
+ ProcessEventBody,
19
+ ProcessEvent,
20
+ Scope,
21
+ ScopesResponseBody,
22
+ SetExpressionResponseBody,
23
+ SetVariableResponseBody,
24
+ SourceBreakpoint,
25
+ SourceResponseBody,
26
+ VariablesResponseBody,
27
+ SetBreakpointsResponseBody,
28
+ Response,
29
+ Capabilities,
30
+ PydevdAuthorizeRequest,
31
+ Request,
32
+ StepInTargetsResponseBody,
33
+ SetFunctionBreakpointsResponseBody,
34
+ BreakpointEvent,
35
+ BreakpointEventBody,
36
+ InitializedEvent,
37
+ )
21
38
  from _pydevd_bundle.pydevd_api import PyDevdAPI
22
39
  from _pydevd_bundle.pydevd_breakpoints import get_exception_class, FunctionBreakpoint
23
40
  from _pydevd_bundle.pydevd_comm_constants import (
24
- CMD_PROCESS_EVENT, CMD_RETURN, CMD_SET_NEXT_STATEMENT, CMD_STEP_INTO,
25
- CMD_STEP_INTO_MY_CODE, CMD_STEP_OVER, CMD_STEP_OVER_MY_CODE, file_system_encoding,
26
- CMD_STEP_RETURN_MY_CODE, CMD_STEP_RETURN)
41
+ CMD_PROCESS_EVENT,
42
+ CMD_RETURN,
43
+ CMD_SET_NEXT_STATEMENT,
44
+ CMD_STEP_INTO,
45
+ CMD_STEP_INTO_MY_CODE,
46
+ CMD_STEP_OVER,
47
+ CMD_STEP_OVER_MY_CODE,
48
+ file_system_encoding,
49
+ CMD_STEP_RETURN_MY_CODE,
50
+ CMD_STEP_RETURN,
51
+ )
27
52
  from _pydevd_bundle.pydevd_filtering import ExcludeFilter
28
53
  from _pydevd_bundle.pydevd_json_debug_options import _extract_debug_options, DebugOptions
29
54
  from _pydevd_bundle.pydevd_net_command import NetCommand
30
55
  from _pydevd_bundle.pydevd_utils import convert_dap_log_message_to_expression, ScopeRequest
31
- from _pydevd_bundle.pydevd_constants import (PY_IMPL_NAME, DebugInfoHolder, PY_VERSION_STR,
32
- PY_IMPL_VERSION_STR, IS_64BIT_PROCESS)
56
+ from _pydevd_bundle.pydevd_constants import PY_IMPL_NAME, DebugInfoHolder, PY_VERSION_STR, PY_IMPL_VERSION_STR, IS_64BIT_PROCESS
33
57
  from _pydevd_bundle.pydevd_trace_dispatch import USING_CYTHON
34
58
  from _pydevd_frame_eval.pydevd_frame_eval_main import USING_FRAME_EVAL
35
59
  from _pydevd_bundle.pydevd_comm import internal_get_step_in_targets_json
@@ -52,27 +76,27 @@ def _convert_rules_to_exclude_filters(rules, on_error):
52
76
  on_error('Invalid "rules" (expected list of dicts). Found: %s' % (rules,))
53
77
  continue
54
78
 
55
- include = rule.get('include')
79
+ include = rule.get("include")
56
80
  if include is None:
57
81
  on_error('Invalid "rule" (expected dict with "include"). Found: %s' % (rule,))
58
82
  continue
59
83
 
60
- path = rule.get('path')
61
- module = rule.get('module')
84
+ path = rule.get("path")
85
+ module = rule.get("module")
62
86
  if path is None and module is None:
63
87
  on_error('Invalid "rule" (expected dict with "path" or "module"). Found: %s' % (rule,))
64
88
  continue
65
89
 
66
90
  if path is not None:
67
91
  glob_pattern = path
68
- if '*' not in path and '?' not in path:
92
+ if "*" not in path and "?" not in path:
69
93
  if os.path.isdir(glob_pattern):
70
94
  # If a directory was specified, add a '/**'
71
95
  # to be consistent with the glob pattern required
72
96
  # by pydevd.
73
- if not glob_pattern.endswith('/') and not glob_pattern.endswith('\\'):
74
- glob_pattern += '/'
75
- glob_pattern += '**'
97
+ if not glob_pattern.endswith("/") and not glob_pattern.endswith("\\"):
98
+ glob_pattern += "/"
99
+ glob_pattern += "**"
76
100
  directory_exclude_filters.append(ExcludeFilter(glob_pattern, not include, True))
77
101
  else:
78
102
  glob_exclude_filters.append(ExcludeFilter(glob_pattern, not include, True))
@@ -81,22 +105,21 @@ def _convert_rules_to_exclude_filters(rules, on_error):
81
105
  module_exclude_filters.append(ExcludeFilter(module, not include, False))
82
106
 
83
107
  else:
84
- on_error('Internal error: expected path or module to be specified.')
108
+ on_error("Internal error: expected path or module to be specified.")
85
109
 
86
110
  # Note that we have to sort the directory/module exclude filters so that the biggest
87
111
  # paths match first.
88
112
  # i.e.: if we have:
89
113
  # /sub1/sub2/sub3
90
114
  # a rule with /sub1/sub2 would match before a rule only with /sub1.
91
- directory_exclude_filters = sorted(directory_exclude_filters, key=lambda exclude_filter:-len(exclude_filter.name))
92
- module_exclude_filters = sorted(module_exclude_filters, key=lambda exclude_filter:-len(exclude_filter.name))
115
+ directory_exclude_filters = sorted(directory_exclude_filters, key=lambda exclude_filter: -len(exclude_filter.name))
116
+ module_exclude_filters = sorted(module_exclude_filters, key=lambda exclude_filter: -len(exclude_filter.name))
93
117
  exclude_filters = directory_exclude_filters + glob_exclude_filters + module_exclude_filters
94
118
 
95
119
  return exclude_filters
96
120
 
97
121
 
98
122
  class IDMap(object):
99
-
100
123
  def __init__(self):
101
124
  self._value_to_key = {}
102
125
  self._key_to_value = {}
@@ -116,7 +139,6 @@ class IDMap(object):
116
139
 
117
140
 
118
141
  class PyDevJsonCommandProcessor(object):
119
-
120
142
  def __init__(self, from_json):
121
143
  self.from_json = from_json
122
144
  self.api = PyDevdAPI()
@@ -126,24 +148,24 @@ class PyDevJsonCommandProcessor(object):
126
148
  self._launch_or_attach_request_done = False
127
149
 
128
150
  def process_net_command_json(self, py_db, json_contents, send_response=True):
129
- '''
151
+ """
130
152
  Processes a debug adapter protocol json command.
131
- '''
153
+ """
132
154
 
133
155
  DEBUG = False
134
156
 
135
157
  try:
136
158
  if isinstance(json_contents, bytes):
137
- json_contents = json_contents.decode('utf-8')
159
+ json_contents = json_contents.decode("utf-8")
138
160
 
139
161
  request = self.from_json(json_contents, update_ids_from_dap=True)
140
162
  except Exception as e:
141
163
  try:
142
164
  loaded_json = json.loads(json_contents)
143
- request = Request(loaded_json.get('command', '<unknown>'), loaded_json['seq'])
165
+ request = Request(loaded_json.get("command", "<unknown>"), loaded_json["seq"])
144
166
  except:
145
167
  # There's not much we can do in this case...
146
- pydev_log.exception('Error loading json: %s', json_contents)
168
+ pydev_log.exception("Error loading json: %s", json_contents)
147
169
  return
148
170
 
149
171
  error_msg = str(e)
@@ -154,28 +176,33 @@ class PyDevJsonCommandProcessor(object):
154
176
  # so, answer with a failure response).
155
177
  def on_request(py_db, request):
156
178
  error_response = {
157
- 'type': 'response',
158
- 'request_seq': request.seq,
159
- 'success': False,
160
- 'command': request.command,
161
- 'message': error_msg,
179
+ "type": "response",
180
+ "request_seq": request.seq,
181
+ "success": False,
182
+ "command": request.command,
183
+ "message": error_msg,
162
184
  }
163
185
  return NetCommand(CMD_RETURN, 0, error_response, is_json=True)
164
186
 
165
187
  else:
166
188
  if DebugInfoHolder.DEBUG_TRACE_LEVEL >= 1:
167
- pydev_log.info('Process %s: %s\n' % (
168
- request.__class__.__name__, json.dumps(request.to_dict(update_ids_to_dap=True), indent=4, sort_keys=True),))
189
+ pydev_log.info(
190
+ "Process %s: %s\n"
191
+ % (
192
+ request.__class__.__name__,
193
+ json.dumps(request.to_dict(update_ids_to_dap=True), indent=4, sort_keys=True),
194
+ )
195
+ )
169
196
 
170
- assert request.type == 'request'
171
- method_name = 'on_%s_request' % (request.command.lower(),)
197
+ assert request.type == "request"
198
+ method_name = "on_%s_request" % (request.command.lower(),)
172
199
  on_request = getattr(self, method_name, None)
173
200
  if on_request is None:
174
- print('Unhandled: %s not available in PyDevJsonCommandProcessor.\n' % (method_name,))
201
+ print("Unhandled: %s not available in PyDevJsonCommandProcessor.\n" % (method_name,))
175
202
  return
176
203
 
177
204
  if DEBUG:
178
- print('Handled in pydevd: %s (in PyDevJsonCommandProcessor).\n' % (method_name,))
205
+ print("Handled in pydevd: %s (in PyDevJsonCommandProcessor).\n" % (method_name,))
179
206
 
180
207
  with py_db._main_lock:
181
208
  if request.__class__ == PydevdAuthorizeRequest:
@@ -184,8 +211,7 @@ class PyDevJsonCommandProcessor(object):
184
211
  py_db.authentication.login(access_token)
185
212
 
186
213
  if not py_db.authentication.is_authenticated():
187
- response = Response(
188
- request.seq, success=False, command=request.command, message='Client not authenticated.', body={})
214
+ response = Response(request.seq, success=False, command=request.command, message="Client not authenticated.", body={})
189
215
  cmd = NetCommand(CMD_RETURN, 0, response, is_json=True)
190
216
  py_db.writer.add_command(cmd)
191
217
  return
@@ -196,11 +222,11 @@ class PyDevJsonCommandProcessor(object):
196
222
 
197
223
  def on_pydevdauthorize_request(self, py_db, request):
198
224
  client_access_token = py_db.authentication.client_access_token
199
- body = {'clientAccessToken': None}
225
+ body = {"clientAccessToken": None}
200
226
  if client_access_token:
201
- body['clientAccessToken'] = client_access_token
227
+ body["clientAccessToken"] = client_access_token
202
228
 
203
- response = pydevd_base_schema.build_response(request, kwargs={'body': body})
229
+ response = pydevd_base_schema.build_response(request, kwargs={"body": body})
204
230
  return NetCommand(CMD_RETURN, 0, response, is_json=True)
205
231
 
206
232
  def on_initialize_request(self, py_db, request):
@@ -224,13 +250,11 @@ class PyDevJsonCommandProcessor(object):
224
250
  supportsTerminateRequest=True,
225
251
  supportsClipboardContext=True,
226
252
  supportsFunctionBreakpoints=True,
227
-
228
253
  exceptionBreakpointFilters=[
229
- {'filter': 'raised', 'label': 'Raised Exceptions', 'default': False},
230
- {'filter': 'uncaught', 'label': 'Uncaught Exceptions', 'default': True},
254
+ {"filter": "raised", "label": "Raised Exceptions", "default": False},
255
+ {"filter": "uncaught", "label": "Uncaught Exceptions", "default": True},
231
256
  {"filter": "userUnhandled", "label": "User Uncaught Exceptions", "default": False},
232
257
  ],
233
-
234
258
  # Not supported.
235
259
  supportsStepBack=False,
236
260
  supportsRestartFrame=False,
@@ -247,20 +271,20 @@ class PyDevJsonCommandProcessor(object):
247
271
  ).to_dict()
248
272
 
249
273
  # Non-standard capabilities/info below.
250
- body['supportsDebuggerProperties'] = True
274
+ body["supportsDebuggerProperties"] = True
251
275
 
252
- body['pydevd'] = pydevd_info = {}
253
- pydevd_info['processId'] = os.getpid()
276
+ body["pydevd"] = pydevd_info = {}
277
+ pydevd_info["processId"] = os.getpid()
254
278
  self.api.notify_initialize(py_db)
255
- response = pydevd_base_schema.build_response(request, kwargs={'body': body})
279
+ response = pydevd_base_schema.build_response(request, kwargs={"body": body})
256
280
  return NetCommand(CMD_RETURN, 0, response, is_json=True)
257
281
 
258
282
  def on_configurationdone_request(self, py_db, request):
259
- '''
283
+ """
260
284
  :param ConfigurationDoneRequest request:
261
- '''
285
+ """
262
286
  if not self._launch_or_attach_request_done:
263
- pydev_log.critical('Missing launch request or attach request before configuration done request.')
287
+ pydev_log.critical("Missing launch request or attach request before configuration done request.")
264
288
 
265
289
  self.api.run(py_db)
266
290
  self.api.notify_configuration_done(py_db)
@@ -269,15 +293,15 @@ class PyDevJsonCommandProcessor(object):
269
293
  return NetCommand(CMD_RETURN, 0, configuration_done_response, is_json=True)
270
294
 
271
295
  def on_threads_request(self, py_db, request):
272
- '''
296
+ """
273
297
  :param ThreadsRequest request:
274
- '''
298
+ """
275
299
  return self.api.list_threads(py_db, request.seq)
276
300
 
277
301
  def on_terminate_request(self, py_db, request):
278
- '''
302
+ """
279
303
  :param TerminateRequest request:
280
- '''
304
+ """
281
305
  self._request_terminate_process(py_db)
282
306
  response = pydevd_base_schema.build_response(request)
283
307
  return NetCommand(CMD_RETURN, 0, response, is_json=True)
@@ -286,25 +310,20 @@ class PyDevJsonCommandProcessor(object):
286
310
  self.api.request_terminate_process(py_db)
287
311
 
288
312
  def on_completions_request(self, py_db, request):
289
- '''
313
+ """
290
314
  :param CompletionsRequest request:
291
- '''
315
+ """
292
316
  arguments = request.arguments # : :type arguments: CompletionsArguments
293
317
  seq = request.seq
294
318
  text = arguments.text
295
319
  frame_id = arguments.frameId
296
- thread_id = py_db.suspended_frames_manager.get_thread_id_for_variable_reference(
297
- frame_id)
320
+ thread_id = py_db.suspended_frames_manager.get_thread_id_for_variable_reference(frame_id)
298
321
 
299
322
  if thread_id is None:
300
323
  body = CompletionsResponseBody([])
301
324
  variables_response = pydevd_base_schema.build_response(
302
- request,
303
- kwargs={
304
- 'body': body,
305
- 'success': False,
306
- 'message': 'Thread to get completions seems to have resumed already.'
307
- })
325
+ request, kwargs={"body": body, "success": False, "message": "Thread to get completions seems to have resumed already."}
326
+ )
308
327
  return NetCommand(CMD_RETURN, 0, variables_response, is_json=True)
309
328
 
310
329
  # Note: line and column are 1-based (convert to 0-based for pydevd).
@@ -319,61 +338,62 @@ class PyDevJsonCommandProcessor(object):
319
338
  self.api.request_completions(py_db, seq, thread_id, frame_id, text, line=line, column=column)
320
339
 
321
340
  def _resolve_remote_root(self, local_root, remote_root):
322
- if remote_root == '.':
341
+ if remote_root == ".":
323
342
  cwd = os.getcwd()
324
- append_pathsep = local_root.endswith('\\') or local_root.endswith('/')
325
- return cwd + (os.path.sep if append_pathsep else '')
343
+ append_pathsep = local_root.endswith("\\") or local_root.endswith("/")
344
+ return cwd + (os.path.sep if append_pathsep else "")
326
345
  return remote_root
327
346
 
328
347
  def _set_debug_options(self, py_db, args, start_reason):
329
- rules = args.get('rules')
330
- stepping_resumes_all_threads = args.get('steppingResumesAllThreads', True)
348
+ rules = args.get("rules")
349
+ stepping_resumes_all_threads = args.get("steppingResumesAllThreads", True)
331
350
  self.api.set_stepping_resumes_all_threads(py_db, stepping_resumes_all_threads)
332
351
 
333
- terminate_child_processes = args.get('terminateChildProcesses', True)
352
+ terminate_child_processes = args.get("terminateChildProcesses", True)
334
353
  self.api.set_terminate_child_processes(py_db, terminate_child_processes)
335
354
 
336
- terminate_keyboard_interrupt = args.get('onTerminate', 'kill') == 'KeyboardInterrupt'
355
+ terminate_keyboard_interrupt = args.get("onTerminate", "kill") == "KeyboardInterrupt"
337
356
  self.api.set_terminate_keyboard_interrupt(py_db, terminate_keyboard_interrupt)
338
357
 
339
- variable_presentation = args.get('variablePresentation', None)
358
+ variable_presentation = args.get("variablePresentation", None)
340
359
  if isinstance(variable_presentation, dict):
341
360
 
342
361
  def get_variable_presentation(setting, default):
343
362
  value = variable_presentation.get(setting, default)
344
- if value not in ('group', 'inline', 'hide'):
363
+ if value not in ("group", "inline", "hide"):
345
364
  pydev_log.info(
346
- 'The value set for "%s" (%s) in the variablePresentation is not valid. Valid values are: "group", "inline", "hide"' % (
347
- setting, value,))
365
+ 'The value set for "%s" (%s) in the variablePresentation is not valid. Valid values are: "group", "inline", "hide"'
366
+ % (
367
+ setting,
368
+ value,
369
+ )
370
+ )
348
371
  value = default
349
372
 
350
373
  return value
351
374
 
352
- default = get_variable_presentation('all', 'group')
375
+ default = get_variable_presentation("all", "group")
353
376
 
354
- special_presentation = get_variable_presentation('special', default)
355
- function_presentation = get_variable_presentation('function', default)
356
- class_presentation = get_variable_presentation('class', default)
357
- protected_presentation = get_variable_presentation('protected', default)
377
+ special_presentation = get_variable_presentation("special", default)
378
+ function_presentation = get_variable_presentation("function", default)
379
+ class_presentation = get_variable_presentation("class", default)
380
+ protected_presentation = get_variable_presentation("protected", default)
358
381
 
359
- self.api.set_variable_presentation(py_db, self.api.VariablePresentation(
360
- special_presentation,
361
- function_presentation,
362
- class_presentation,
363
- protected_presentation
364
- ))
382
+ self.api.set_variable_presentation(
383
+ py_db,
384
+ self.api.VariablePresentation(special_presentation, function_presentation, class_presentation, protected_presentation),
385
+ )
365
386
 
366
387
  exclude_filters = []
367
388
 
368
389
  if rules is not None:
369
- exclude_filters = _convert_rules_to_exclude_filters(
370
- rules, lambda msg: self.api.send_error_message(py_db, msg))
390
+ exclude_filters = _convert_rules_to_exclude_filters(rules, lambda msg: self.api.send_error_message(py_db, msg))
371
391
 
372
392
  self.api.set_exclude_filters(py_db, exclude_filters)
373
393
 
374
394
  debug_options = _extract_debug_options(
375
- args.get('options'),
376
- args.get('debugOptions'),
395
+ args.get("options"),
396
+ args.get("debugOptions"),
377
397
  )
378
398
  self._options.update_fom_debug_options(debug_options)
379
399
  self._options.update_from_args(args)
@@ -384,17 +404,17 @@ class PyDevJsonCommandProcessor(object):
384
404
  self.api.set_ide_os(self._options.client_os)
385
405
 
386
406
  path_mappings = []
387
- for pathMapping in args.get('pathMappings', []):
388
- localRoot = pathMapping.get('localRoot', '')
389
- remoteRoot = pathMapping.get('remoteRoot', '')
407
+ for pathMapping in args.get("pathMappings", []):
408
+ localRoot = pathMapping.get("localRoot", "")
409
+ remoteRoot = pathMapping.get("remoteRoot", "")
390
410
  remoteRoot = self._resolve_remote_root(localRoot, remoteRoot)
391
- if (localRoot != '') and (remoteRoot != ''):
411
+ if (localRoot != "") and (remoteRoot != ""):
392
412
  path_mappings.append((localRoot, remoteRoot))
393
413
 
394
414
  if bool(path_mappings):
395
415
  pydevd_file_utils.setup_client_server_paths(path_mappings)
396
416
 
397
- resolve_symlinks = args.get('resolveSymlinks', None)
417
+ resolve_symlinks = args.get("resolveSymlinks", None)
398
418
  if resolve_symlinks is not None:
399
419
  pydevd_file_utils.set_resolve_symlinks(resolve_symlinks)
400
420
 
@@ -416,13 +436,13 @@ class PyDevJsonCommandProcessor(object):
416
436
 
417
437
  self.api.set_ignore_system_exit_codes(py_db, ignore_system_exit_codes)
418
438
 
419
- auto_reload = args.get('autoReload', {})
439
+ auto_reload = args.get("autoReload", {})
420
440
  if not isinstance(auto_reload, dict):
421
- pydev_log.info('Expected autoReload to be a dict. Received: %s' % (auto_reload,))
441
+ pydev_log.info("Expected autoReload to be a dict. Received: %s" % (auto_reload,))
422
442
  auto_reload = {}
423
443
 
424
- enable_auto_reload = auto_reload.get('enable', False)
425
- watch_dirs = auto_reload.get('watchDirectories')
444
+ enable_auto_reload = auto_reload.get("enable", False)
445
+ watch_dirs = auto_reload.get("watchDirectories")
426
446
  if not watch_dirs:
427
447
  watch_dirs = []
428
448
  # Note: by default this is no longer done because on some cases there are entries in the PYTHONPATH
@@ -435,15 +455,15 @@ class PyDevJsonCommandProcessor(object):
435
455
  # watch_dirs = [pydevd_file_utils.absolute_path(w) for w in check]
436
456
  # watch_dirs = [w for w in watch_dirs if py_db.in_project_roots_filename_uncached(w) and os.path.isdir(w)]
437
457
 
438
- program = args.get('program')
458
+ program = args.get("program")
439
459
  if program:
440
460
  if os.path.isdir(program):
441
461
  watch_dirs.append(program)
442
462
  else:
443
463
  watch_dirs.append(os.path.dirname(program))
444
- watch_dirs.append(os.path.abspath('.'))
464
+ watch_dirs.append(os.path.abspath("."))
445
465
 
446
- argv = getattr(sys, 'argv', [])
466
+ argv = getattr(sys, "argv", [])
447
467
  if argv:
448
468
  f = argv[0]
449
469
  if f: # argv[0] could be None (https://github.com/microsoft/debugpy/issues/987)
@@ -459,30 +479,31 @@ class PyDevJsonCommandProcessor(object):
459
479
  try:
460
480
  new_watch_dirs.add(pydevd_file_utils.get_path_with_real_case(pydevd_file_utils.absolute_path(w)))
461
481
  except Exception:
462
- pydev_log.exception('Error adding watch dir: %s', w)
482
+ pydev_log.exception("Error adding watch dir: %s", w)
463
483
  watch_dirs = new_watch_dirs
464
484
 
465
- poll_target_time = auto_reload.get('pollingInterval', 1)
466
- exclude_patterns = auto_reload.get('exclude', ('**/.git/**', '**/__pycache__/**', '**/node_modules/**', '**/.metadata/**', '**/site-packages/**'))
467
- include_patterns = auto_reload.get('include', ('**/*.py', '**/*.pyw'))
468
- self.api.setup_auto_reload_watcher(
469
- py_db, enable_auto_reload, watch_dirs, poll_target_time, exclude_patterns, include_patterns)
485
+ poll_target_time = auto_reload.get("pollingInterval", 1)
486
+ exclude_patterns = auto_reload.get(
487
+ "exclude", ("**/.git/**", "**/__pycache__/**", "**/node_modules/**", "**/.metadata/**", "**/site-packages/**")
488
+ )
489
+ include_patterns = auto_reload.get("include", ("**/*.py", "**/*.pyw"))
490
+ self.api.setup_auto_reload_watcher(py_db, enable_auto_reload, watch_dirs, poll_target_time, exclude_patterns, include_patterns)
470
491
 
471
- if self._options.stop_on_entry and start_reason == 'launch':
492
+ if self._options.stop_on_entry and start_reason == "launch":
472
493
  self.api.stop_on_entry()
473
494
 
474
495
  self.api.set_gui_event_loop(py_db, self._options.gui_event_loop)
475
496
 
476
497
  def _send_process_event(self, py_db, start_method):
477
- argv = getattr(sys, 'argv', [])
498
+ argv = getattr(sys, "argv", [])
478
499
  if len(argv) > 0:
479
500
  name = argv[0]
480
501
  else:
481
- name = ''
502
+ name = ""
482
503
 
483
504
  if isinstance(name, bytes):
484
- name = name.decode(file_system_encoding, 'replace')
485
- name = name.encode('utf-8')
505
+ name = name.decode(file_system_encoding, "replace")
506
+ name = name.encode("utf-8")
486
507
 
487
508
  body = ProcessEventBody(
488
509
  name=name,
@@ -505,21 +526,21 @@ class PyDevJsonCommandProcessor(object):
505
526
  return NetCommand(CMD_RETURN, 0, response, is_json=True)
506
527
 
507
528
  def on_launch_request(self, py_db, request):
508
- '''
529
+ """
509
530
  :param LaunchRequest request:
510
- '''
511
- return self._handle_launch_or_attach_request(py_db, request, start_reason='launch')
531
+ """
532
+ return self._handle_launch_or_attach_request(py_db, request, start_reason="launch")
512
533
 
513
534
  def on_attach_request(self, py_db, request):
514
- '''
535
+ """
515
536
  :param AttachRequest request:
516
- '''
517
- return self._handle_launch_or_attach_request(py_db, request, start_reason='attach')
537
+ """
538
+ return self._handle_launch_or_attach_request(py_db, request, start_reason="attach")
518
539
 
519
540
  def on_pause_request(self, py_db, request):
520
- '''
541
+ """
521
542
  :param PauseRequest request:
522
- '''
543
+ """
523
544
  arguments = request.arguments # : :type arguments: PauseArguments
524
545
  thread_id = arguments.threadId
525
546
 
@@ -529,29 +550,37 @@ class PyDevJsonCommandProcessor(object):
529
550
  return NetCommand(CMD_RETURN, 0, response, is_json=True)
530
551
 
531
552
  def on_continue_request(self, py_db, request):
532
- '''
553
+ """
533
554
  :param ContinueRequest request:
534
- '''
555
+ """
535
556
  arguments = request.arguments # : :type arguments: ContinueArguments
536
557
  thread_id = arguments.threadId
537
558
 
538
559
  def on_resumed():
539
- body = {'allThreadsContinued': thread_id == '*'}
540
- response = pydevd_base_schema.build_response(request, kwargs={'body': body})
560
+ body = {"allThreadsContinued": thread_id == "*"}
561
+ response = pydevd_base_schema.build_response(request, kwargs={"body": body})
541
562
  cmd = NetCommand(CMD_RETURN, 0, response, is_json=True)
542
563
  py_db.writer.add_command(cmd)
543
564
 
544
- # Only send resumed notification when it has actually resumed!
545
- # (otherwise the user could send a continue, receive the notification and then
546
- # request a new pause which would be paused without sending any notification as
547
- # it didn't really run in the first place).
548
- py_db.threads_suspended_single_notification.add_on_resumed_callback(on_resumed)
549
- self.api.request_resume_thread(thread_id)
565
+ if py_db.multi_threads_single_notification:
566
+ # Only send resumed notification when it has actually resumed!
567
+ # (otherwise the user could send a continue, receive the notification and then
568
+ # request a new pause which would be paused without sending any notification as
569
+ # it didn't really run in the first place).
570
+ py_db.threads_suspended_single_notification.add_on_resumed_callback(on_resumed)
571
+ self.api.request_resume_thread(thread_id)
572
+ else:
573
+ # Only send resumed notification when it has actually resumed!
574
+ # (otherwise the user could send a continue, receive the notification and then
575
+ # request a new pause which would be paused without sending any notification as
576
+ # it didn't really run in the first place).
577
+ self.api.request_resume_thread(thread_id)
578
+ on_resumed()
550
579
 
551
580
  def on_next_request(self, py_db, request):
552
- '''
581
+ """
553
582
  :param NextRequest request:
554
- '''
583
+ """
555
584
  arguments = request.arguments # : :type arguments: NextArguments
556
585
  thread_id = arguments.threadId
557
586
 
@@ -566,9 +595,9 @@ class PyDevJsonCommandProcessor(object):
566
595
  return NetCommand(CMD_RETURN, 0, response, is_json=True)
567
596
 
568
597
  def on_stepin_request(self, py_db, request):
569
- '''
598
+ """
570
599
  :param StepInRequest request:
571
- '''
600
+ """
572
601
  arguments = request.arguments # : :type arguments: StepInArguments
573
602
  thread_id = arguments.threadId
574
603
 
@@ -580,7 +609,7 @@ class PyDevJsonCommandProcessor(object):
580
609
  request_seq=request.seq,
581
610
  success=False,
582
611
  command=request.command,
583
- message='Unable to find thread from thread_id: %s' % (thread_id,),
612
+ message="Unable to find thread from thread_id: %s" % (thread_id,),
584
613
  body={},
585
614
  )
586
615
  return NetCommand(CMD_RETURN, 0, response, is_json=True)
@@ -589,11 +618,8 @@ class PyDevJsonCommandProcessor(object):
589
618
  target_id_to_smart_step_into_variant = info.target_id_to_smart_step_into_variant
590
619
  if not target_id_to_smart_step_into_variant:
591
620
  variables_response = pydevd_base_schema.build_response(
592
- request,
593
- kwargs={
594
- 'success': False,
595
- 'message': 'Unable to step into target (no targets are saved in the thread info).'
596
- })
621
+ request, kwargs={"success": False, "message": "Unable to step into target (no targets are saved in the thread info)."}
622
+ )
597
623
  return NetCommand(CMD_RETURN, 0, variables_response, is_json=True)
598
624
 
599
625
  variant = target_id_to_smart_step_into_variant.get(target_id)
@@ -607,10 +633,11 @@ class PyDevJsonCommandProcessor(object):
607
633
  variables_response = pydevd_base_schema.build_response(
608
634
  request,
609
635
  kwargs={
610
- 'success': False,
611
- 'message': 'Unable to find step into target %s. Available targets: %s' % (
612
- target_id, target_id_to_smart_step_into_variant)
613
- })
636
+ "success": False,
637
+ "message": "Unable to find step into target %s. Available targets: %s"
638
+ % (target_id, target_id_to_smart_step_into_variant),
639
+ },
640
+ )
614
641
  return NetCommand(CMD_RETURN, 0, variables_response, is_json=True)
615
642
 
616
643
  else:
@@ -625,31 +652,32 @@ class PyDevJsonCommandProcessor(object):
625
652
  return NetCommand(CMD_RETURN, 0, response, is_json=True)
626
653
 
627
654
  def on_stepintargets_request(self, py_db, request):
628
- '''
655
+ """
629
656
  :param StepInTargetsRequest request:
630
- '''
657
+ """
631
658
  frame_id = request.arguments.frameId
632
- thread_id = py_db.suspended_frames_manager.get_thread_id_for_variable_reference(
633
- frame_id)
659
+ thread_id = py_db.suspended_frames_manager.get_thread_id_for_variable_reference(frame_id)
634
660
 
635
661
  if thread_id is None:
636
662
  body = StepInTargetsResponseBody([])
637
663
  variables_response = pydevd_base_schema.build_response(
638
664
  request,
639
665
  kwargs={
640
- 'body': body,
641
- 'success': False,
642
- 'message': 'Unable to get thread_id from frame_id (thread to get step in targets seems to have resumed already).'
643
- })
666
+ "body": body,
667
+ "success": False,
668
+ "message": "Unable to get thread_id from frame_id (thread to get step in targets seems to have resumed already).",
669
+ },
670
+ )
644
671
  return NetCommand(CMD_RETURN, 0, variables_response, is_json=True)
645
672
 
646
673
  py_db.post_method_as_internal_command(
647
- thread_id, internal_get_step_in_targets_json, request.seq, thread_id, frame_id, request, set_additional_thread_info)
674
+ thread_id, internal_get_step_in_targets_json, request.seq, thread_id, frame_id, request, set_additional_thread_info
675
+ )
648
676
 
649
677
  def on_stepout_request(self, py_db, request):
650
- '''
678
+ """
651
679
  :param StepOutRequest request:
652
- '''
680
+ """
653
681
  arguments = request.arguments # : :type arguments: StepOutArguments
654
682
  thread_id = arguments.threadId
655
683
 
@@ -664,38 +692,36 @@ class PyDevJsonCommandProcessor(object):
664
692
  return NetCommand(CMD_RETURN, 0, response, is_json=True)
665
693
 
666
694
  def _get_hit_condition_expression(self, hit_condition):
667
- '''Following hit condition values are supported
695
+ """Following hit condition values are supported
668
696
 
669
697
  * x or == x when breakpoint is hit x times
670
698
  * >= x when breakpoint is hit more than or equal to x times
671
699
  * % x when breakpoint is hit multiple of x times
672
700
 
673
701
  Returns '@HIT@ == x' where @HIT@ will be replaced by number of hits
674
- '''
702
+ """
675
703
  if not hit_condition:
676
704
  return None
677
705
 
678
706
  expr = hit_condition.strip()
679
707
  try:
680
708
  int(expr)
681
- return '@HIT@ == {}'.format(expr)
709
+ return "@HIT@ == {}".format(expr)
682
710
  except ValueError:
683
711
  pass
684
712
 
685
- if expr.startswith('%'):
686
- return '@HIT@ {} == 0'.format(expr)
713
+ if expr.startswith("%"):
714
+ return "@HIT@ {} == 0".format(expr)
687
715
 
688
- if expr.startswith('==') or \
689
- expr.startswith('>') or \
690
- expr.startswith('<'):
691
- return '@HIT@ {}'.format(expr)
716
+ if expr.startswith("==") or expr.startswith(">") or expr.startswith("<"):
717
+ return "@HIT@ {}".format(expr)
692
718
 
693
719
  return hit_condition
694
720
 
695
721
  def on_disconnect_request(self, py_db, request):
696
- '''
722
+ """
697
723
  :param DisconnectRequest request:
698
- '''
724
+ """
699
725
  if request.arguments.terminateDebuggee:
700
726
  self._request_terminate_process(py_db)
701
727
  response = pydevd_base_schema.build_response(request)
@@ -712,30 +738,27 @@ class PyDevJsonCommandProcessor(object):
712
738
  if not self._launch_or_attach_request_done:
713
739
  # Note that to validate the breakpoints we need the launch request to be done already
714
740
  # (otherwise the filters wouldn't be set for the breakpoint validation).
715
- if request.command == 'setFunctionBreakpoints':
741
+ if request.command == "setFunctionBreakpoints":
716
742
  body = SetFunctionBreakpointsResponseBody([])
717
743
  else:
718
744
  body = SetBreakpointsResponseBody([])
719
745
  response = pydevd_base_schema.build_response(
720
746
  request,
721
- kwargs={
722
- 'body': body,
723
- 'success': False,
724
- 'message': 'Breakpoints may only be set after the launch request is received.'
725
- })
747
+ kwargs={"body": body, "success": False, "message": "Breakpoints may only be set after the launch request is received."},
748
+ )
726
749
  return NetCommand(CMD_RETURN, 0, response, is_json=True)
727
750
 
728
751
  def on_setfunctionbreakpoints_request(self, py_db, request):
729
- '''
752
+ """
730
753
  :param SetFunctionBreakpointsRequest request:
731
- '''
754
+ """
732
755
  response = self._verify_launch_or_attach_done(request)
733
756
  if response is not None:
734
757
  return response
735
758
 
736
759
  arguments = request.arguments # : :type arguments: SetFunctionBreakpointsArguments
737
760
  function_breakpoints = []
738
- suspend_policy = 'ALL'
761
+ suspend_policy = "ALL" if py_db.multi_threads_single_notification else "NONE"
739
762
 
740
763
  # Not currently covered by the DAP.
741
764
  is_logpoint = False
@@ -743,26 +766,24 @@ class PyDevJsonCommandProcessor(object):
743
766
 
744
767
  breakpoints_set = []
745
768
  for bp in arguments.breakpoints:
746
- hit_condition = self._get_hit_condition_expression(bp.get('hitCondition'))
747
- condition = bp.get('condition')
769
+ hit_condition = self._get_hit_condition_expression(bp.get("hitCondition"))
770
+ condition = bp.get("condition")
748
771
 
749
- function_breakpoints.append(
750
- FunctionBreakpoint(bp['name'], condition, expression, suspend_policy, hit_condition, is_logpoint))
772
+ function_breakpoints.append(FunctionBreakpoint(bp["name"], condition, expression, suspend_policy, hit_condition, is_logpoint))
751
773
 
752
774
  # Note: always succeeds.
753
- breakpoints_set.append(pydevd_schema.Breakpoint(
754
- verified=True, id=self._next_breakpoint_id()).to_dict())
775
+ breakpoints_set.append(pydevd_schema.Breakpoint(verified=True, id=self._next_breakpoint_id()).to_dict())
755
776
 
756
777
  self.api.set_function_breakpoints(py_db, function_breakpoints)
757
778
 
758
- body = {'breakpoints': breakpoints_set}
759
- set_breakpoints_response = pydevd_base_schema.build_response(request, kwargs={'body': body})
779
+ body = {"breakpoints": breakpoints_set}
780
+ set_breakpoints_response = pydevd_base_schema.build_response(request, kwargs={"body": body})
760
781
  return NetCommand(CMD_RETURN, 0, set_breakpoints_response, is_json=True)
761
782
 
762
783
  def on_setbreakpoints_request(self, py_db, request):
763
- '''
784
+ """
764
785
  :param SetBreakpointsRequest request:
765
- '''
786
+ """
766
787
  response = self._verify_launch_or_attach_done(request)
767
788
  if response is not None:
768
789
  return response
@@ -770,18 +791,18 @@ class PyDevJsonCommandProcessor(object):
770
791
  arguments = request.arguments # : :type arguments: SetBreakpointsArguments
771
792
  # TODO: Path is optional here it could be source reference.
772
793
  filename = self.api.filename_to_str(arguments.source.path)
773
- func_name = 'None'
794
+ func_name = "None"
774
795
 
775
796
  self.api.remove_all_breakpoints(py_db, filename)
776
797
 
777
- btype = 'python-line'
778
- suspend_policy = 'ALL'
798
+ btype = "python-line"
799
+ suspend_policy = "ALL" if py_db.multi_threads_single_notification else "NONE"
779
800
 
780
- if not filename.lower().endswith('.py'): # Note: check based on original file, not mapping.
801
+ if not filename.lower().endswith(".py"): # Note: check based on original file, not mapping.
781
802
  if self._options.django_debug:
782
- btype = 'django-line'
803
+ btype = "django-line"
783
804
  elif self._options.flask_debug:
784
- btype = 'jinja2-line'
805
+ btype = "jinja2-line"
785
806
 
786
807
  breakpoints_set = []
787
808
 
@@ -802,20 +823,32 @@ class PyDevJsonCommandProcessor(object):
802
823
 
803
824
  on_changed_breakpoint_state = partial(self._on_changed_breakpoint_state, py_db, arguments.source)
804
825
  result = self.api.add_breakpoint(
805
- py_db, filename, btype, breakpoint_id, line, condition, func_name, expression,
806
- suspend_policy, hit_condition, is_logpoint, adjust_line=True, on_changed_breakpoint_state=on_changed_breakpoint_state)
826
+ py_db,
827
+ filename,
828
+ btype,
829
+ breakpoint_id,
830
+ line,
831
+ condition,
832
+ func_name,
833
+ expression,
834
+ suspend_policy,
835
+ hit_condition,
836
+ is_logpoint,
837
+ adjust_line=True,
838
+ on_changed_breakpoint_state=on_changed_breakpoint_state,
839
+ )
807
840
 
808
841
  bp = self._create_breakpoint_from_add_breakpoint_result(py_db, arguments.source, breakpoint_id, result)
809
842
  breakpoints_set.append(bp)
810
843
 
811
- body = {'breakpoints': breakpoints_set}
812
- set_breakpoints_response = pydevd_base_schema.build_response(request, kwargs={'body': body})
844
+ body = {"breakpoints": breakpoints_set}
845
+ set_breakpoints_response = pydevd_base_schema.build_response(request, kwargs={"body": body})
813
846
  return NetCommand(CMD_RETURN, 0, set_breakpoints_response, is_json=True)
814
847
 
815
848
  def _on_changed_breakpoint_state(self, py_db, source, breakpoint_id, result):
816
849
  bp = self._create_breakpoint_from_add_breakpoint_result(py_db, source, breakpoint_id, result)
817
850
  body = BreakpointEventBody(
818
- reason='changed',
851
+ reason="changed",
819
852
  breakpoint=bp,
820
853
  )
821
854
  event = BreakpointEvent(body)
@@ -827,34 +860,36 @@ class PyDevJsonCommandProcessor(object):
827
860
 
828
861
  if error_code:
829
862
  if error_code == self.api.ADD_BREAKPOINT_FILE_NOT_FOUND:
830
- error_msg = 'Breakpoint in file that does not exist.'
863
+ error_msg = "Breakpoint in file that does not exist."
831
864
 
832
865
  elif error_code == self.api.ADD_BREAKPOINT_FILE_EXCLUDED_BY_FILTERS:
833
- error_msg = 'Breakpoint in file excluded by filters.'
866
+ error_msg = "Breakpoint in file excluded by filters."
834
867
  if py_db.get_use_libraries_filter():
835
- error_msg += ('\nNote: may be excluded because of "justMyCode" option (default == true).'
836
- 'Try setting \"justMyCode\": false in the debug configuration (e.g., launch.json).\n')
868
+ error_msg += (
869
+ '\nNote: may be excluded because of "justMyCode" option (default == true).'
870
+ 'Try setting "justMyCode": false in the debug configuration (e.g., launch.json).\n'
871
+ )
837
872
 
838
873
  elif error_code == self.api.ADD_BREAKPOINT_LAZY_VALIDATION:
839
- error_msg = 'Waiting for code to be loaded to verify breakpoint.'
874
+ error_msg = "Waiting for code to be loaded to verify breakpoint."
840
875
 
841
876
  elif error_code == self.api.ADD_BREAKPOINT_INVALID_LINE:
842
- error_msg = 'Breakpoint added to invalid line.'
877
+ error_msg = "Breakpoint added to invalid line."
843
878
 
844
879
  else:
845
880
  # Shouldn't get here.
846
- error_msg = 'Breakpoint not validated (reason unknown -- please report as bug).'
881
+ error_msg = "Breakpoint not validated (reason unknown -- please report as bug)."
847
882
 
848
883
  return pydevd_schema.Breakpoint(
849
- verified=False, id=breakpoint_id, line=result.translated_line, message=error_msg, source=source).to_dict()
884
+ verified=False, id=breakpoint_id, line=result.translated_line, message=error_msg, source=source
885
+ ).to_dict()
850
886
  else:
851
- return pydevd_schema.Breakpoint(
852
- verified=True, id=breakpoint_id, line=result.translated_line, source=source).to_dict()
887
+ return pydevd_schema.Breakpoint(verified=True, id=breakpoint_id, line=result.translated_line, source=source).to_dict()
853
888
 
854
889
  def on_setexceptionbreakpoints_request(self, py_db, request):
855
- '''
890
+ """
856
891
  :param SetExceptionBreakpointsRequest request:
857
- '''
892
+ """
858
893
  # : :type arguments: SetExceptionBreakpointsArguments
859
894
  arguments = request.arguments
860
895
  filters = arguments.filters
@@ -885,9 +920,9 @@ class PyDevJsonCommandProcessor(object):
885
920
  #
886
921
  # userUnhandled: breaks if the exception is not handled by user code
887
922
 
888
- notify_on_handled_exceptions = 1 if option.breakMode == 'always' else 0
889
- notify_on_unhandled_exceptions = 1 if option.breakMode == 'unhandled' else 0
890
- notify_on_user_unhandled_exceptions = 1 if option.breakMode == 'userUnhandled' else 0
923
+ notify_on_handled_exceptions = 1 if option.breakMode == "always" else 0
924
+ notify_on_unhandled_exceptions = 1 if option.breakMode == "unhandled" else 0
925
+ notify_on_user_unhandled_exceptions = 1 if option.breakMode == "userUnhandled" else 0
891
926
  exception_paths = option.path
892
927
  break_raised |= notify_on_handled_exceptions
893
928
  break_uncaught |= notify_on_unhandled_exceptions
@@ -897,14 +932,14 @@ class PyDevJsonCommandProcessor(object):
897
932
  continue
898
933
 
899
934
  elif len(exception_paths) == 1:
900
- if 'Python Exceptions' in exception_paths[0]['names']:
901
- exception_names = ['BaseException']
935
+ if "Python Exceptions" in exception_paths[0]["names"]:
936
+ exception_names = ["BaseException"]
902
937
 
903
938
  else:
904
939
  path_iterator = iter(exception_paths)
905
- if 'Python Exceptions' in next(path_iterator)['names']:
940
+ if "Python Exceptions" in next(path_iterator)["names"]:
906
941
  for path in path_iterator:
907
- for ex_name in path['names']:
942
+ for ex_name in path["names"]:
908
943
  exception_names.append(ex_name)
909
944
 
910
945
  for exception_name in exception_names:
@@ -917,18 +952,18 @@ class PyDevJsonCommandProcessor(object):
917
952
  notify_on_unhandled_exceptions,
918
953
  notify_on_user_unhandled_exceptions,
919
954
  notify_on_first_raise_only,
920
- ignore_libraries
955
+ ignore_libraries,
921
956
  )
922
957
 
923
958
  else:
924
- break_raised = 'raised' in filters
925
- break_uncaught = 'uncaught' in filters
926
- break_user = 'userUnhandled' in filters
959
+ break_raised = "raised" in filters
960
+ break_uncaught = "uncaught" in filters
961
+ break_user = "userUnhandled" in filters
927
962
  if break_raised or break_uncaught or break_user:
928
963
  notify_on_handled_exceptions = 1 if break_raised else 0
929
964
  notify_on_unhandled_exceptions = 1 if break_uncaught else 0
930
965
  notify_on_user_unhandled_exceptions = 1 if break_user else 0
931
- exception = 'BaseException'
966
+ exception = "BaseException"
932
967
 
933
968
  self.api.add_python_exception_breakpoint(
934
969
  py_db,
@@ -939,28 +974,27 @@ class PyDevJsonCommandProcessor(object):
939
974
  notify_on_unhandled_exceptions,
940
975
  notify_on_user_unhandled_exceptions,
941
976
  notify_on_first_raise_only,
942
- ignore_libraries
977
+ ignore_libraries,
943
978
  )
944
979
 
945
980
  if break_raised:
946
981
  btype = None
947
982
  if self._options.django_debug:
948
- btype = 'django'
983
+ btype = "django"
949
984
  elif self._options.flask_debug:
950
- btype = 'jinja2'
985
+ btype = "jinja2"
951
986
 
952
987
  if btype:
953
- self.api.add_plugins_exception_breakpoint(
954
- py_db, btype, 'BaseException') # Note: Exception name could be anything here.
988
+ self.api.add_plugins_exception_breakpoint(py_db, btype, "BaseException") # Note: Exception name could be anything here.
955
989
 
956
990
  # Note: no body required on success.
957
991
  set_breakpoints_response = pydevd_base_schema.build_response(request)
958
992
  return NetCommand(CMD_RETURN, 0, set_breakpoints_response, is_json=True)
959
993
 
960
994
  def on_stacktrace_request(self, py_db, request):
961
- '''
995
+ """
962
996
  :param StackTraceRequest request:
963
- '''
997
+ """
964
998
  # : :type stack_trace_arguments: StackTraceArguments
965
999
  stack_trace_arguments = request.arguments
966
1000
  thread_id = stack_trace_arguments.threadId
@@ -976,14 +1010,14 @@ class PyDevJsonCommandProcessor(object):
976
1010
  levels = 0
977
1011
 
978
1012
  fmt = stack_trace_arguments.format
979
- if hasattr(fmt, 'to_dict'):
1013
+ if hasattr(fmt, "to_dict"):
980
1014
  fmt = fmt.to_dict()
981
1015
  self.api.request_stack(py_db, request.seq, thread_id, fmt=fmt, start_frame=start_frame, levels=levels)
982
1016
 
983
1017
  def on_exceptioninfo_request(self, py_db, request):
984
- '''
1018
+ """
985
1019
  :param ExceptionInfoRequest request:
986
- '''
1020
+ """
987
1021
  # : :type exception_into_arguments: ExceptionInfoArguments
988
1022
  exception_into_arguments = request.arguments
989
1023
  thread_id = exception_into_arguments.threadId
@@ -996,78 +1030,67 @@ class PyDevJsonCommandProcessor(object):
996
1030
  request_seq=request.seq,
997
1031
  success=False,
998
1032
  command=request.command,
999
- message='Unable to find thread from thread_id: %s' % (thread_id,),
1033
+ message="Unable to find thread from thread_id: %s" % (thread_id,),
1000
1034
  body={},
1001
1035
  )
1002
1036
  return NetCommand(CMD_RETURN, 0, response, is_json=True)
1003
1037
 
1004
1038
  def on_scopes_request(self, py_db, request):
1005
- '''
1039
+ """
1006
1040
  Scopes are the top-level items which appear for a frame (so, we receive the frame id
1007
1041
  and provide the scopes it has).
1008
1042
 
1009
1043
  :param ScopesRequest request:
1010
- '''
1044
+ """
1011
1045
  frame_id = request.arguments.frameId
1012
1046
 
1013
1047
  variables_reference = frame_id
1014
1048
  scopes = [
1015
- Scope('Locals', ScopeRequest(int(variables_reference), 'locals'), False, presentationHint='locals'),
1016
- Scope('Globals', ScopeRequest(int(variables_reference), 'globals'), False),
1049
+ Scope("Locals", ScopeRequest(int(variables_reference), "locals"), False, presentationHint="locals"),
1050
+ Scope("Globals", ScopeRequest(int(variables_reference), "globals"), False),
1017
1051
  ]
1018
1052
  body = ScopesResponseBody(scopes)
1019
- scopes_response = pydevd_base_schema.build_response(request, kwargs={'body': body})
1053
+ scopes_response = pydevd_base_schema.build_response(request, kwargs={"body": body})
1020
1054
  return NetCommand(CMD_RETURN, 0, scopes_response, is_json=True)
1021
1055
 
1022
1056
  def on_evaluate_request(self, py_db, request):
1023
- '''
1057
+ """
1024
1058
  :param EvaluateRequest request:
1025
- '''
1059
+ """
1026
1060
  # : :type arguments: EvaluateArguments
1027
1061
  arguments = request.arguments
1028
1062
 
1029
1063
  if arguments.frameId is None:
1030
- self.api.request_exec_or_evaluate_json(py_db, request, thread_id='*')
1064
+ self.api.request_exec_or_evaluate_json(py_db, request, thread_id="*")
1031
1065
  else:
1032
- thread_id = py_db.suspended_frames_manager.get_thread_id_for_variable_reference(
1033
- arguments.frameId)
1066
+ thread_id = py_db.suspended_frames_manager.get_thread_id_for_variable_reference(arguments.frameId)
1034
1067
 
1035
1068
  if thread_id is not None:
1036
- self.api.request_exec_or_evaluate_json(
1037
- py_db, request, thread_id)
1069
+ self.api.request_exec_or_evaluate_json(py_db, request, thread_id)
1038
1070
  else:
1039
- body = EvaluateResponseBody('', 0)
1071
+ body = EvaluateResponseBody("", 0)
1040
1072
  response = pydevd_base_schema.build_response(
1041
- request,
1042
- kwargs={
1043
- 'body': body,
1044
- 'success': False,
1045
- 'message': 'Unable to find thread for evaluation.'
1046
- })
1073
+ request, kwargs={"body": body, "success": False, "message": "Unable to find thread for evaluation."}
1074
+ )
1047
1075
  return NetCommand(CMD_RETURN, 0, response, is_json=True)
1048
1076
 
1049
1077
  def on_setexpression_request(self, py_db, request):
1050
1078
  # : :type arguments: SetExpressionArguments
1051
1079
  arguments = request.arguments
1052
1080
 
1053
- thread_id = py_db.suspended_frames_manager.get_thread_id_for_variable_reference(
1054
- arguments.frameId)
1081
+ thread_id = py_db.suspended_frames_manager.get_thread_id_for_variable_reference(arguments.frameId)
1055
1082
 
1056
1083
  if thread_id is not None:
1057
1084
  self.api.request_set_expression_json(py_db, request, thread_id)
1058
1085
  else:
1059
- body = SetExpressionResponseBody('')
1086
+ body = SetExpressionResponseBody("")
1060
1087
  response = pydevd_base_schema.build_response(
1061
- request,
1062
- kwargs={
1063
- 'body': body,
1064
- 'success': False,
1065
- 'message': 'Unable to find thread to set expression.'
1066
- })
1088
+ request, kwargs={"body": body, "success": False, "message": "Unable to find thread to set expression."}
1089
+ )
1067
1090
  return NetCommand(CMD_RETURN, 0, response, is_json=True)
1068
1091
 
1069
1092
  def on_variables_request(self, py_db, request):
1070
- '''
1093
+ """
1071
1094
  Variables can be asked whenever some place returned a variables reference (so, it
1072
1095
  can be a scope gotten from on_scopes_request, the result of some evaluation, etc.).
1073
1096
 
@@ -1080,25 +1103,22 @@ class PyDevJsonCommandProcessor(object):
1080
1103
  see: SuspendedFramesManager
1081
1104
 
1082
1105
  :param VariablesRequest request:
1083
- '''
1106
+ """
1084
1107
  arguments = request.arguments # : :type arguments: VariablesArguments
1085
1108
  variables_reference = arguments.variablesReference
1086
1109
 
1087
1110
  if isinstance(variables_reference, ScopeRequest):
1088
1111
  variables_reference = variables_reference.variable_reference
1089
1112
 
1090
- thread_id = py_db.suspended_frames_manager.get_thread_id_for_variable_reference(
1091
- variables_reference)
1113
+ thread_id = py_db.suspended_frames_manager.get_thread_id_for_variable_reference(variables_reference)
1092
1114
  if thread_id is not None:
1093
1115
  self.api.request_get_variable_json(py_db, request, thread_id)
1094
1116
  else:
1095
1117
  variables = []
1096
1118
  body = VariablesResponseBody(variables)
1097
- variables_response = pydevd_base_schema.build_response(request, kwargs={
1098
- 'body': body,
1099
- 'success': False,
1100
- 'message': 'Unable to find thread to evaluate variable reference.'
1101
- })
1119
+ variables_response = pydevd_base_schema.build_response(
1120
+ request, kwargs={"body": body, "success": False, "message": "Unable to find thread to evaluate variable reference."}
1121
+ )
1102
1122
  return NetCommand(CMD_RETURN, 0, variables_response, is_json=True)
1103
1123
 
1104
1124
  def on_setvariable_request(self, py_db, request):
@@ -1108,18 +1128,13 @@ class PyDevJsonCommandProcessor(object):
1108
1128
  if isinstance(variables_reference, ScopeRequest):
1109
1129
  variables_reference = variables_reference.variable_reference
1110
1130
 
1111
- if arguments.name.startswith('(return) '):
1131
+ if arguments.name.startswith("(return) "):
1112
1132
  response = pydevd_base_schema.build_response(
1113
- request,
1114
- kwargs={
1115
- 'body': SetVariableResponseBody(''),
1116
- 'success': False,
1117
- 'message': 'Cannot change return value'
1118
- })
1133
+ request, kwargs={"body": SetVariableResponseBody(""), "success": False, "message": "Cannot change return value"}
1134
+ )
1119
1135
  return NetCommand(CMD_RETURN, 0, response, is_json=True)
1120
1136
 
1121
- thread_id = py_db.suspended_frames_manager.get_thread_id_for_variable_reference(
1122
- variables_reference)
1137
+ thread_id = py_db.suspended_frames_manager.get_thread_id_for_variable_reference(variables_reference)
1123
1138
 
1124
1139
  if thread_id is not None:
1125
1140
  self.api.request_change_variable_json(py_db, request, thread_id)
@@ -1127,23 +1142,24 @@ class PyDevJsonCommandProcessor(object):
1127
1142
  response = pydevd_base_schema.build_response(
1128
1143
  request,
1129
1144
  kwargs={
1130
- 'body': SetVariableResponseBody(''),
1131
- 'success': False,
1132
- 'message': 'Unable to find thread to evaluate variable reference.'
1133
- })
1145
+ "body": SetVariableResponseBody(""),
1146
+ "success": False,
1147
+ "message": "Unable to find thread to evaluate variable reference.",
1148
+ },
1149
+ )
1134
1150
  return NetCommand(CMD_RETURN, 0, response, is_json=True)
1135
1151
 
1136
1152
  def on_modules_request(self, py_db, request):
1137
1153
  modules_manager = py_db.cmd_factory.modules_manager # : :type modules_manager: ModulesManager
1138
1154
  modules_info = modules_manager.get_modules_info()
1139
1155
  body = ModulesResponseBody(modules_info)
1140
- variables_response = pydevd_base_schema.build_response(request, kwargs={'body': body})
1156
+ variables_response = pydevd_base_schema.build_response(request, kwargs={"body": body})
1141
1157
  return NetCommand(CMD_RETURN, 0, variables_response, is_json=True)
1142
1158
 
1143
1159
  def on_source_request(self, py_db, request):
1144
- '''
1160
+ """
1145
1161
  :param SourceRequest request:
1146
- '''
1162
+ """
1147
1163
  source_reference = request.arguments.sourceReference
1148
1164
  server_filename = None
1149
1165
  content = None
@@ -1156,7 +1172,7 @@ class PyDevJsonCommandProcessor(object):
1156
1172
  if server_filename:
1157
1173
  # Try direct file access first - it's much faster when available.
1158
1174
  try:
1159
- with open(server_filename, 'r') as stream:
1175
+ with open(server_filename, "r") as stream:
1160
1176
  content = stream.read()
1161
1177
  except:
1162
1178
  pass
@@ -1170,29 +1186,29 @@ class PyDevJsonCommandProcessor(object):
1170
1186
 
1171
1187
  # If we didn't get at least one line back, reset it to None so that it's
1172
1188
  # reported as error below, and not as an empty file.
1173
- content = ''.join(lines) or None
1189
+ content = "".join(lines) or None
1174
1190
 
1175
1191
  if content is None:
1176
1192
  frame_id = pydevd_file_utils.get_frame_id_from_source_reference(source_reference)
1177
- pydev_log.debug('Found frame id: %s for source reference: %s', frame_id, source_reference)
1193
+ pydev_log.debug("Found frame id: %s for source reference: %s", frame_id, source_reference)
1178
1194
  if frame_id is not None:
1179
1195
  try:
1180
1196
  content = self.api.get_decompiled_source_from_frame_id(py_db, frame_id)
1181
1197
  except Exception:
1182
- pydev_log.exception('Error getting source for frame id: %s', frame_id)
1198
+ pydev_log.exception("Error getting source for frame id: %s", frame_id)
1183
1199
  content = None
1184
1200
 
1185
- body = SourceResponseBody(content or '')
1186
- response_args = {'body': body}
1201
+ body = SourceResponseBody(content or "")
1202
+ response_args = {"body": body}
1187
1203
 
1188
1204
  if content is None:
1189
1205
  if source_reference == 0:
1190
- message = 'Source unavailable'
1206
+ message = "Source unavailable"
1191
1207
  elif server_filename:
1192
- message = 'Unable to retrieve source for %s' % (server_filename,)
1208
+ message = "Unable to retrieve source for %s" % (server_filename,)
1193
1209
  else:
1194
- message = 'Invalid sourceReference %d' % (source_reference,)
1195
- response_args.update({'success': False, 'message': message})
1210
+ message = "Invalid sourceReference %d" % (source_reference,)
1211
+ response_args.update({"success": False, "message": message})
1196
1212
 
1197
1213
  response = pydevd_base_schema.build_response(request, kwargs=response_args)
1198
1214
  return NetCommand(CMD_RETURN, 0, response, is_json=True)
@@ -1201,13 +1217,9 @@ class PyDevJsonCommandProcessor(object):
1201
1217
  path = request.arguments.source.path
1202
1218
  line = request.arguments.line
1203
1219
  target_id = self._goto_targets_map.obtain_key((path, line))
1204
- target = {
1205
- 'id': target_id,
1206
- 'label': '%s:%s' % (path, line),
1207
- 'line': line
1208
- }
1220
+ target = {"id": target_id, "label": "%s:%s" % (path, line), "line": line}
1209
1221
  body = GotoTargetsResponseBody(targets=[target])
1210
- response_args = {'body': body}
1222
+ response_args = {"body": body}
1211
1223
  response = pydevd_base_schema.build_response(request, kwargs=response_args)
1212
1224
  return NetCommand(CMD_RETURN, 0, response, is_json=True)
1213
1225
 
@@ -1220,13 +1232,14 @@ class PyDevJsonCommandProcessor(object):
1220
1232
  response = pydevd_base_schema.build_response(
1221
1233
  request,
1222
1234
  kwargs={
1223
- 'body': {},
1224
- 'success': False,
1225
- 'message': 'Unknown goto target id: %d' % (target_id,),
1226
- })
1235
+ "body": {},
1236
+ "success": False,
1237
+ "message": "Unknown goto target id: %d" % (target_id,),
1238
+ },
1239
+ )
1227
1240
  return NetCommand(CMD_RETURN, 0, response, is_json=True)
1228
1241
 
1229
- self.api.request_set_next(py_db, request.seq, thread_id, CMD_SET_NEXT_STATEMENT, path, line, '*')
1242
+ self.api.request_set_next(py_db, request.seq, thread_id, CMD_SET_NEXT_STATEMENT, path, line, "*")
1230
1243
  # See 'NetCommandFactoryJson.make_set_next_stmnt_status_message' for response
1231
1244
  return None
1232
1245
 
@@ -1241,12 +1254,10 @@ class PyDevJsonCommandProcessor(object):
1241
1254
  self.api.set_dont_trace_start_end_patterns(py_db, start_patterns, end_patterns)
1242
1255
 
1243
1256
  if args.skipSuspendOnBreakpointException is not None:
1244
- py_db.skip_suspend_on_breakpoint_exception = tuple(
1245
- get_exception_class(x) for x in args.skipSuspendOnBreakpointException)
1257
+ py_db.skip_suspend_on_breakpoint_exception = tuple(get_exception_class(x) for x in args.skipSuspendOnBreakpointException)
1246
1258
 
1247
1259
  if args.skipPrintBreakpointException is not None:
1248
- py_db.skip_print_breakpoint_exception = tuple(
1249
- get_exception_class(x) for x in args.skipPrintBreakpointException)
1260
+ py_db.skip_print_breakpoint_exception = tuple(get_exception_class(x) for x in args.skipPrintBreakpointException)
1250
1261
 
1251
1262
  if args.multiThreadsSingleNotification is not None:
1252
1263
  py_db.multi_threads_single_notification = args.multiThreadsSingleNotification
@@ -1260,7 +1271,7 @@ class PyDevJsonCommandProcessor(object):
1260
1271
  # WarnIfNoUserCodeOnLaunch: 0 or 1
1261
1272
  # EnableStepFiltering: true of false
1262
1273
 
1263
- response = pydevd_base_schema.build_response(request, kwargs={'body': {}})
1274
+ response = pydevd_base_schema.build_response(request, kwargs={"body": {}})
1264
1275
  return NetCommand(CMD_RETURN, 0, response, is_json=True)
1265
1276
 
1266
1277
  def on_pydevdsysteminfo_request(self, py_db, request):
@@ -1287,7 +1298,7 @@ class PyDevJsonCommandProcessor(object):
1287
1298
  name=PY_IMPL_NAME,
1288
1299
  version=PY_IMPL_VERSION_STR,
1289
1300
  description=impl_desc,
1290
- )
1301
+ ),
1291
1302
  )
1292
1303
  platform_info = pydevd_schema.PydevdPlatformInfo(name=sys.platform)
1293
1304
  process_info = pydevd_schema.PydevdProcessInfo(
@@ -1301,12 +1312,12 @@ class PyDevJsonCommandProcessor(object):
1301
1312
  usingFrameEval=USING_FRAME_EVAL,
1302
1313
  )
1303
1314
  body = {
1304
- 'python': py_info,
1305
- 'platform': platform_info,
1306
- 'process': process_info,
1307
- 'pydevd': pydevd_info,
1315
+ "python": py_info,
1316
+ "platform": platform_info,
1317
+ "process": process_info,
1318
+ "pydevd": pydevd_info,
1308
1319
  }
1309
- response = pydevd_base_schema.build_response(request, kwargs={'body': body})
1320
+ response = pydevd_base_schema.build_response(request, kwargs={"body": body})
1310
1321
  return NetCommand(CMD_RETURN, 0, response, is_json=True)
1311
1322
 
1312
1323
  def on_setpydevdsourcemap_request(self, py_db, request):
@@ -1318,11 +1329,12 @@ class PyDevJsonCommandProcessor(object):
1318
1329
  # : :type source_map: PydevdSourceMap
1319
1330
  new_mappings = [
1320
1331
  SourceMappingEntry(
1321
- source_map['line'],
1322
- source_map['endLine'],
1323
- source_map['runtimeLine'],
1324
- self.api.filename_to_str(source_map['runtimeSource']['path'])
1325
- ) for source_map in source_maps
1332
+ source_map["line"],
1333
+ source_map["endLine"],
1334
+ source_map["runtimeLine"],
1335
+ self.api.filename_to_str(source_map["runtimeSource"]["path"]),
1336
+ )
1337
+ for source_map in source_maps
1326
1338
  ]
1327
1339
 
1328
1340
  error_msg = self.api.set_source_mapping(py_db, path, new_mappings)
@@ -1330,12 +1342,12 @@ class PyDevJsonCommandProcessor(object):
1330
1342
  response = pydevd_base_schema.build_response(
1331
1343
  request,
1332
1344
  kwargs={
1333
- 'body': {},
1334
- 'success': False,
1335
- 'message': error_msg,
1336
- })
1345
+ "body": {},
1346
+ "success": False,
1347
+ "message": error_msg,
1348
+ },
1349
+ )
1337
1350
  return NetCommand(CMD_RETURN, 0, response, is_json=True)
1338
1351
 
1339
1352
  response = pydevd_base_schema.build_response(request)
1340
1353
  return NetCommand(CMD_RETURN, 0, response, is_json=True)
1341
-