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
@@ -5,17 +5,44 @@ import types
5
5
  from _pydev_bundle._pydev_saved_modules import threading
6
6
  from _pydevd_bundle import pydevd_utils, pydevd_source_mapping
7
7
  from _pydevd_bundle.pydevd_additional_thread_info import set_additional_thread_info
8
- from _pydevd_bundle.pydevd_comm import (InternalGetThreadStack, internal_get_completions,
9
- InternalSetNextStatementThread, internal_reload_code,
10
- InternalGetVariable, InternalGetArray, InternalLoadFullValue,
11
- internal_get_description, internal_get_frame, internal_evaluate_expression, InternalConsoleExec,
12
- internal_get_variable_json, internal_change_variable, internal_change_variable_json,
13
- internal_evaluate_expression_json, internal_set_expression_json, internal_get_exception_details_json,
14
- internal_step_in_thread, internal_smart_step_into)
15
- from _pydevd_bundle.pydevd_comm_constants import (CMD_THREAD_SUSPEND, file_system_encoding,
16
- CMD_STEP_INTO_MY_CODE, CMD_STOP_ON_START, CMD_SMART_STEP_INTO)
17
- from _pydevd_bundle.pydevd_constants import (get_current_thread_id, set_protocol, get_protocol,
18
- HTTP_JSON_PROTOCOL, JSON_PROTOCOL, DebugInfoHolder, IS_WINDOWS)
8
+ from _pydevd_bundle.pydevd_comm import (
9
+ InternalGetThreadStack,
10
+ internal_get_completions,
11
+ InternalSetNextStatementThread,
12
+ internal_reload_code,
13
+ InternalGetVariable,
14
+ InternalGetArray,
15
+ InternalLoadFullValue,
16
+ internal_get_description,
17
+ internal_get_frame,
18
+ internal_evaluate_expression,
19
+ InternalConsoleExec,
20
+ internal_get_variable_json,
21
+ internal_change_variable,
22
+ internal_change_variable_json,
23
+ internal_evaluate_expression_json,
24
+ internal_set_expression_json,
25
+ internal_get_exception_details_json,
26
+ internal_step_in_thread,
27
+ internal_smart_step_into,
28
+ )
29
+ from _pydevd_bundle.pydevd_comm_constants import (
30
+ CMD_THREAD_SUSPEND,
31
+ file_system_encoding,
32
+ CMD_STEP_INTO_MY_CODE,
33
+ CMD_STOP_ON_START,
34
+ CMD_SMART_STEP_INTO,
35
+ )
36
+ from _pydevd_bundle.pydevd_constants import (
37
+ get_current_thread_id,
38
+ set_protocol,
39
+ get_protocol,
40
+ HTTP_JSON_PROTOCOL,
41
+ JSON_PROTOCOL,
42
+ DebugInfoHolder,
43
+ IS_WINDOWS,
44
+ PYDEVD_USE_SYS_MONITORING,
45
+ )
19
46
  from _pydevd_bundle.pydevd_net_command_factory_json import NetCommandFactoryJson
20
47
  from _pydevd_bundle.pydevd_net_command_factory_xml import NetCommandFactory
21
48
  import pydevd_file_utils
@@ -32,6 +59,7 @@ from _pydevd_bundle.pydevd_utils import DAPGrouper, interrupt_main_thread
32
59
  from _pydevd_bundle.pydevd_daemon_thread import run_as_pydevd_daemon_thread
33
60
  from _pydevd_bundle.pydevd_thread_lifecycle import pydevd_find_thread_by_id, resume_threads
34
61
  import tokenize
62
+ from _pydevd_sys_monitoring import pydevd_sys_monitoring
35
63
 
36
64
  try:
37
65
  import dis
@@ -47,7 +75,7 @@ else:
47
75
  path = code
48
76
  with tokenize.open(path) as f:
49
77
  src = f.read()
50
- code = compile(src, path, 'exec', 0, dont_inherit=True)
78
+ code = compile(src, path, "exec", 0, dont_inherit=True)
51
79
  return _get_code_lines(code)
52
80
 
53
81
  def iterate():
@@ -68,10 +96,8 @@ else:
68
96
 
69
97
 
70
98
  class PyDevdAPI(object):
71
-
72
99
  class VariablePresentation(object):
73
-
74
- def __init__(self, special='group', function='group', class_='group', protected='inline'):
100
+ def __init__(self, special="group", function="group", class_="group", protected="inline"):
75
101
  self._presentation = {
76
102
  DAPGrouper.SCOPE_SPECIAL_VARS: special,
77
103
  DAPGrouper.SCOPE_FUNCTION_VARS: function,
@@ -107,11 +133,11 @@ class PyDevdAPI(object):
107
133
  return py_db.cmd_factory.make_protocol_set_message(seq)
108
134
 
109
135
  def set_ide_os_and_breakpoints_by(self, py_db, seq, ide_os, breakpoints_by):
110
- '''
136
+ """
111
137
  :param ide_os: 'WINDOWS' or 'UNIX'
112
138
  :param breakpoints_by: 'ID' or 'LINE'
113
- '''
114
- if breakpoints_by == 'ID':
139
+ """
140
+ if breakpoints_by == "ID":
115
141
  py_db._set_breakpoints_with_id = True
116
142
  else:
117
143
  py_db._set_breakpoints_with_id = False
@@ -121,16 +147,16 @@ class PyDevdAPI(object):
121
147
  return py_db.cmd_factory.make_version_message(seq)
122
148
 
123
149
  def set_ide_os(self, ide_os):
124
- '''
150
+ """
125
151
  :param ide_os: 'WINDOWS' or 'UNIX'
126
- '''
152
+ """
127
153
  pydevd_file_utils.set_ide_os(ide_os)
128
154
 
129
155
  def set_gui_event_loop(self, py_db, gui_event_loop):
130
156
  py_db._gui_event_loop = gui_event_loop
131
157
 
132
158
  def send_error_message(self, py_db, msg):
133
- cmd = py_db.cmd_factory.make_warning_message('pydevd: %s\n' % (msg,))
159
+ cmd = py_db.cmd_factory.make_warning_message("pydevd: %s\n" % (msg,))
134
160
  py_db.writer.add_command(cmd)
135
161
 
136
162
  def set_show_return_values(self, py_db, show_return_values):
@@ -147,14 +173,14 @@ class PyDevdAPI(object):
147
173
  # Response is the command with the list of threads to be added to the writer thread.
148
174
  return py_db.cmd_factory.make_list_threads_message(py_db, seq)
149
175
 
150
- def request_suspend_thread(self, py_db, thread_id='*'):
176
+ def request_suspend_thread(self, py_db, thread_id="*"):
151
177
  # Yes, thread suspend is done at this point, not through an internal command.
152
178
  threads = []
153
- suspend_all = thread_id.strip() == '*'
179
+ suspend_all = thread_id.strip() == "*"
154
180
  if suspend_all:
155
181
  threads = pydevd_utils.get_non_pydevd_threads()
156
182
 
157
- elif thread_id.startswith('__frame__:'):
183
+ elif thread_id.startswith("__frame__:"):
158
184
  sys.stderr.write("Can't suspend tasklet: %s\n" % (thread_id,))
159
185
 
160
186
  else:
@@ -174,40 +200,42 @@ class PyDevdAPI(object):
174
200
  break
175
201
 
176
202
  def set_enable_thread_notifications(self, py_db, enable):
177
- '''
203
+ """
178
204
  When disabled, no thread notifications (for creation/removal) will be
179
205
  issued until it's re-enabled.
180
206
 
181
207
  Note that when it's re-enabled, a creation notification will be sent for
182
208
  all existing threads even if it was previously sent (this is meant to
183
209
  be used on disconnect/reconnect).
184
- '''
210
+ """
185
211
  py_db.set_enable_thread_notifications(enable)
186
212
 
187
213
  def request_disconnect(self, py_db, resume_threads):
188
214
  self.set_enable_thread_notifications(py_db, False)
189
- self.remove_all_breakpoints(py_db, '*')
215
+ self.remove_all_breakpoints(py_db, "*")
190
216
  self.remove_all_exception_breakpoints(py_db)
191
217
  self.notify_disconnect(py_db)
192
218
 
193
219
  if resume_threads:
194
- self.request_resume_thread(thread_id='*')
220
+ self.request_resume_thread(thread_id="*")
195
221
 
196
222
  def request_resume_thread(self, thread_id):
197
223
  resume_threads(thread_id)
198
224
 
199
225
  def request_completions(self, py_db, seq, thread_id, frame_id, act_tok, line=-1, column=-1):
200
226
  py_db.post_method_as_internal_command(
201
- thread_id, internal_get_completions, seq, thread_id, frame_id, act_tok, line=line, column=column)
227
+ thread_id, internal_get_completions, seq, thread_id, frame_id, act_tok, line=line, column=column
228
+ )
202
229
 
203
- def request_stack(self, py_db, seq, thread_id, fmt=None, timeout=.5, start_frame=0, levels=0):
230
+ def request_stack(self, py_db, seq, thread_id, fmt=None, timeout=0.5, start_frame=0, levels=0):
204
231
  # If it's already suspended, get it right away.
205
232
  internal_get_thread_stack = InternalGetThreadStack(
206
- seq, thread_id, py_db, set_additional_thread_info, fmt=fmt, timeout=timeout, start_frame=start_frame, levels=levels)
233
+ seq, thread_id, py_db, set_additional_thread_info, fmt=fmt, timeout=timeout, start_frame=start_frame, levels=levels
234
+ )
207
235
  if internal_get_thread_stack.can_be_executed_by(get_current_thread_id(threading.current_thread())):
208
236
  internal_get_thread_stack.do_it(py_db)
209
237
  else:
210
- py_db.post_internal_command(internal_get_thread_stack, '*')
238
+ py_db.post_internal_command(internal_get_thread_stack, "*")
211
239
 
212
240
  def request_exception_info_json(self, py_db, request, thread_id, thread, max_frames):
213
241
  py_db.post_method_as_internal_command(
@@ -231,15 +259,16 @@ class PyDevdAPI(object):
231
259
  step_cmd_id,
232
260
  set_additional_thread_info=set_additional_thread_info,
233
261
  )
234
- elif thread_id.startswith('__frame__:'):
262
+ elif thread_id.startswith("__frame__:"):
235
263
  sys.stderr.write("Can't make tasklet step command: %s\n" % (thread_id,))
236
264
 
237
265
  def request_smart_step_into(self, py_db, seq, thread_id, offset, child_offset):
238
266
  t = pydevd_find_thread_by_id(thread_id)
239
267
  if t:
240
268
  py_db.post_method_as_internal_command(
241
- thread_id, internal_smart_step_into, thread_id, offset, child_offset, set_additional_thread_info=set_additional_thread_info)
242
- elif thread_id.startswith('__frame__:'):
269
+ thread_id, internal_smart_step_into, thread_id, offset, child_offset, set_additional_thread_info=set_additional_thread_info
270
+ )
271
+ elif thread_id.startswith("__frame__:"):
243
272
  sys.stderr.write("Can't set next statement in tasklet: %s\n" % (thread_id,))
244
273
 
245
274
  def request_smart_step_into_by_func_name(self, py_db, seq, thread_id, line, func_name):
@@ -247,7 +276,7 @@ class PyDevdAPI(object):
247
276
  self.request_set_next(py_db, seq, thread_id, CMD_SMART_STEP_INTO, None, line, func_name)
248
277
 
249
278
  def request_set_next(self, py_db, seq, thread_id, set_next_cmd_id, original_filename, line, func_name):
250
- '''
279
+ """
251
280
  set_next_cmd_id may actually be one of:
252
281
 
253
282
  CMD_RUN_TO_LINE
@@ -261,52 +290,49 @@ class PyDevdAPI(object):
261
290
  place (the set next just needs the line afterwards as it executes locally, but for
262
291
  the Jupyter integration, the source mapping may change the actual lines and not only
263
292
  the filename).
264
- '''
293
+ """
265
294
  t = pydevd_find_thread_by_id(thread_id)
266
295
  if t:
267
296
  if original_filename is not None:
268
297
  translated_filename = self.filename_to_server(original_filename) # Apply user path mapping.
269
- pydev_log.debug('Set next (after path translation) in: %s line: %s', translated_filename, line)
298
+ pydev_log.debug("Set next (after path translation) in: %s line: %s", translated_filename, line)
270
299
  func_name = self.to_str(func_name)
271
300
 
272
301
  assert translated_filename.__class__ == str # i.e.: bytes on py2 and str on py3
273
302
  assert func_name.__class__ == str # i.e.: bytes on py2 and str on py3
274
303
 
275
304
  # Apply source mapping (i.e.: ipython).
276
- _source_mapped_filename, new_line, multi_mapping_applied = py_db.source_mapping.map_to_server(
277
- translated_filename, line)
305
+ _source_mapped_filename, new_line, multi_mapping_applied = py_db.source_mapping.map_to_server(translated_filename, line)
278
306
  if multi_mapping_applied:
279
- pydev_log.debug('Set next (after source mapping) in: %s line: %s', translated_filename, line)
307
+ pydev_log.debug("Set next (after source mapping) in: %s line: %s", translated_filename, line)
280
308
  line = new_line
281
309
 
282
310
  int_cmd = InternalSetNextStatementThread(thread_id, set_next_cmd_id, line, func_name, seq=seq)
283
311
  py_db.post_internal_command(int_cmd, thread_id)
284
- elif thread_id.startswith('__frame__:'):
312
+ elif thread_id.startswith("__frame__:"):
285
313
  sys.stderr.write("Can't set next statement in tasklet: %s\n" % (thread_id,))
286
314
 
287
315
  def request_reload_code(self, py_db, seq, module_name, filename):
288
- '''
316
+ """
289
317
  :param seq: if -1 no message will be sent back when the reload is done.
290
318
 
291
319
  Note: either module_name or filename may be None (but not both at the same time).
292
- '''
293
- thread_id = '*' # Any thread
320
+ """
321
+ thread_id = "*" # Any thread
294
322
  # Note: not going for the main thread because in this case it'd only do the load
295
323
  # when we stopped on a breakpoint.
296
- py_db.post_method_as_internal_command(
297
- thread_id, internal_reload_code, seq, module_name, filename)
324
+ py_db.post_method_as_internal_command(thread_id, internal_reload_code, seq, module_name, filename)
298
325
 
299
326
  def request_change_variable(self, py_db, seq, thread_id, frame_id, scope, attr, value):
300
- '''
327
+ """
301
328
  :param scope: 'FRAME' or 'GLOBAL'
302
- '''
303
- py_db.post_method_as_internal_command(
304
- thread_id, internal_change_variable, seq, thread_id, frame_id, scope, attr, value)
329
+ """
330
+ py_db.post_method_as_internal_command(thread_id, internal_change_variable, seq, thread_id, frame_id, scope, attr, value)
305
331
 
306
332
  def request_get_variable(self, py_db, seq, thread_id, frame_id, scope, attrs):
307
- '''
333
+ """
308
334
  :param scope: 'FRAME' or 'GLOBAL'
309
- '''
335
+ """
310
336
  int_cmd = InternalGetVariable(seq, thread_id, frame_id, scope, attrs)
311
337
  py_db.post_internal_command(int_cmd, thread_id)
312
338
 
@@ -319,27 +345,25 @@ class PyDevdAPI(object):
319
345
  py_db.post_internal_command(int_cmd, thread_id)
320
346
 
321
347
  def request_get_description(self, py_db, seq, thread_id, frame_id, expression):
322
- py_db.post_method_as_internal_command(
323
- thread_id, internal_get_description, seq, thread_id, frame_id, expression)
348
+ py_db.post_method_as_internal_command(thread_id, internal_get_description, seq, thread_id, frame_id, expression)
324
349
 
325
350
  def request_get_frame(self, py_db, seq, thread_id, frame_id):
326
- py_db.post_method_as_internal_command(
327
- thread_id, internal_get_frame, seq, thread_id, frame_id)
351
+ py_db.post_method_as_internal_command(thread_id, internal_get_frame, seq, thread_id, frame_id)
328
352
 
329
353
  def to_str(self, s):
330
- '''
354
+ """
331
355
  -- in py3 raises an error if it's not str already.
332
- '''
356
+ """
333
357
  if s.__class__ != str:
334
- raise AssertionError('Expected to have str on Python 3. Found: %s (%s)' % (s, s.__class__))
358
+ raise AssertionError("Expected to have str on Python 3. Found: %s (%s)" % (s, s.__class__))
335
359
  return s
336
360
 
337
361
  def filename_to_str(self, filename):
338
- '''
362
+ """
339
363
  -- in py3 raises an error if it's not str already.
340
- '''
364
+ """
341
365
  if filename.__class__ != str:
342
- raise AssertionError('Expected to have str on Python 3. Found: %s (%s)' % (filename, filename.__class__))
366
+ raise AssertionError("Expected to have str on Python 3. Found: %s (%s)" % (filename, filename.__class__))
343
367
  return filename
344
368
 
345
369
  def filename_to_server(self, filename):
@@ -348,17 +372,16 @@ class PyDevdAPI(object):
348
372
  return filename
349
373
 
350
374
  class _DummyFrame(object):
351
- '''
375
+ """
352
376
  Dummy frame to be used with PyDB.apply_files_filter (as we don't really have the
353
377
  related frame as breakpoints are added before execution).
354
- '''
378
+ """
355
379
 
356
380
  class _DummyCode(object):
357
-
358
381
  def __init__(self, filename):
359
382
  self.co_firstlineno = 1
360
383
  self.co_filename = filename
361
- self.co_name = 'invalid func name '
384
+ self.co_name = "invalid func name "
362
385
 
363
386
  def __init__(self, filename):
364
387
  self.f_code = self._DummyCode(filename)
@@ -374,14 +397,13 @@ class PyDevdAPI(object):
374
397
  ADD_BREAKPOINT_INVALID_LINE = 4
375
398
 
376
399
  class _AddBreakpointResult(object):
377
-
378
400
  # :see: ADD_BREAKPOINT_NO_ERROR = 0
379
401
  # :see: ADD_BREAKPOINT_FILE_NOT_FOUND = 1
380
402
  # :see: ADD_BREAKPOINT_FILE_EXCLUDED_BY_FILTERS = 2
381
403
  # :see: ADD_BREAKPOINT_LAZY_VALIDATION = 3
382
404
  # :see: ADD_BREAKPOINT_INVALID_LINE = 4
383
405
 
384
- __slots__ = ['error_code', 'breakpoint_id', 'translated_filename', 'translated_line', 'original_line']
406
+ __slots__ = ["error_code", "breakpoint_id", "translated_filename", "translated_line", "original_line"]
385
407
 
386
408
  def __init__(self, breakpoint_id, translated_filename, translated_line, original_line):
387
409
  self.error_code = PyDevdAPI.ADD_BREAKPOINT_NO_ERROR
@@ -391,9 +413,22 @@ class PyDevdAPI(object):
391
413
  self.original_line = original_line
392
414
 
393
415
  def add_breakpoint(
394
- self, py_db, original_filename, breakpoint_type, breakpoint_id, line, condition, func_name,
395
- expression, suspend_policy, hit_condition, is_logpoint, adjust_line=False, on_changed_breakpoint_state=None):
396
- '''
416
+ self,
417
+ py_db,
418
+ original_filename,
419
+ breakpoint_type,
420
+ breakpoint_id,
421
+ line,
422
+ condition,
423
+ func_name,
424
+ expression,
425
+ suspend_policy,
426
+ hit_condition,
427
+ is_logpoint,
428
+ adjust_line=False,
429
+ on_changed_breakpoint_state=None,
430
+ ):
431
+ """
397
432
  :param str original_filename:
398
433
  Note: must be sent as it was received in the protocol. It may be translated in this
399
434
  function and its final value will be available in the returned _AddBreakpointResult.
@@ -446,30 +481,41 @@ class PyDevdAPI(object):
446
481
  implementation may internally reuse the same instance multiple times).
447
482
 
448
483
  :return _AddBreakpointResult:
449
- '''
450
- assert original_filename.__class__ == str, 'Expected str, found: %s' % (original_filename.__class__,) # i.e.: bytes on py2 and str on py3
484
+ """
485
+ assert original_filename.__class__ == str, "Expected str, found: %s" % (
486
+ original_filename.__class__,
487
+ ) # i.e.: bytes on py2 and str on py3
451
488
 
452
489
  original_filename_normalized = pydevd_file_utils.normcase_from_client(original_filename)
453
490
 
454
- pydev_log.debug('Request for breakpoint in: %s line: %s', original_filename, line)
491
+ pydev_log.debug("Request for breakpoint in: %s line: %s", original_filename, line)
455
492
  original_line = line
456
493
  # Parameters to reapply breakpoint.
457
- api_add_breakpoint_params = (original_filename, breakpoint_type, breakpoint_id, line, condition, func_name,
458
- expression, suspend_policy, hit_condition, is_logpoint)
494
+ api_add_breakpoint_params = (
495
+ original_filename,
496
+ breakpoint_type,
497
+ breakpoint_id,
498
+ line,
499
+ condition,
500
+ func_name,
501
+ expression,
502
+ suspend_policy,
503
+ hit_condition,
504
+ is_logpoint,
505
+ )
459
506
 
460
507
  translated_filename = self.filename_to_server(original_filename) # Apply user path mapping.
461
- pydev_log.debug('Breakpoint (after path translation) in: %s line: %s', translated_filename, line)
508
+ pydev_log.debug("Breakpoint (after path translation) in: %s line: %s", translated_filename, line)
462
509
  func_name = self.to_str(func_name)
463
510
 
464
511
  assert translated_filename.__class__ == str # i.e.: bytes on py2 and str on py3
465
512
  assert func_name.__class__ == str # i.e.: bytes on py2 and str on py3
466
513
 
467
514
  # Apply source mapping (i.e.: ipython).
468
- source_mapped_filename, new_line, multi_mapping_applied = py_db.source_mapping.map_to_server(
469
- translated_filename, line)
515
+ source_mapped_filename, new_line, multi_mapping_applied = py_db.source_mapping.map_to_server(translated_filename, line)
470
516
 
471
517
  if multi_mapping_applied:
472
- pydev_log.debug('Breakpoint (after source mapping) in: %s line: %s', source_mapped_filename, new_line)
518
+ pydev_log.debug("Breakpoint (after source mapping) in: %s line: %s", source_mapped_filename, new_line)
473
519
  # Note that source mapping is internal and does not change the resulting filename nor line
474
520
  # (we want the outside world to see the line in the original file and not in the ipython
475
521
  # cell, otherwise the editor wouldn't be correct as the returned line is the line to
@@ -485,7 +531,7 @@ class PyDevdAPI(object):
485
531
  translated_absolute_filename = pydevd_file_utils.absolute_path(translated_filename)
486
532
  canonical_normalized_filename = pydevd_file_utils.canonical_normalized_path(translated_filename)
487
533
 
488
- if adjust_line and not translated_absolute_filename.startswith('<'):
534
+ if adjust_line and not translated_absolute_filename.startswith("<"):
489
535
  # Validate file_to_line_to_breakpoints and adjust their positions.
490
536
  try:
491
537
  lines = sorted(_get_code_lines(translated_absolute_filename))
@@ -500,9 +546,12 @@ class PyDevdAPI(object):
500
546
 
501
547
  result = self._AddBreakpointResult(breakpoint_id, original_filename, line, original_line)
502
548
 
503
- py_db.api_received_breakpoints[(original_filename_normalized, breakpoint_id)] = (canonical_normalized_filename, api_add_breakpoint_params)
549
+ py_db.api_received_breakpoints[(original_filename_normalized, breakpoint_id)] = (
550
+ canonical_normalized_filename,
551
+ api_add_breakpoint_params,
552
+ )
504
553
 
505
- if not translated_absolute_filename.startswith('<'):
554
+ if not translated_absolute_filename.startswith("<"):
506
555
  # Note: if a mapping pointed to a file starting with '<', don't validate.
507
556
 
508
557
  if not pydevd_file_utils.exists(translated_absolute_filename):
@@ -510,10 +559,10 @@ class PyDevdAPI(object):
510
559
  return result
511
560
 
512
561
  if (
513
- py_db.is_files_filter_enabled and
514
- not py_db.get_require_module_for_filters() and
515
- py_db.apply_files_filter(self._DummyFrame(translated_absolute_filename), translated_absolute_filename, False)
516
- ):
562
+ py_db.is_files_filter_enabled
563
+ and not py_db.get_require_module_for_filters()
564
+ and py_db.apply_files_filter(self._DummyFrame(translated_absolute_filename), translated_absolute_filename, False)
565
+ ):
517
566
  # Note that if `get_require_module_for_filters()` returns False, we don't do this check.
518
567
  # This is because we don't have the module name given a file at this point (in
519
568
  # runtime it's gotten from the frame.f_globals).
@@ -525,9 +574,10 @@ class PyDevdAPI(object):
525
574
  # breakpoint even with the error code.
526
575
  result.error_code = self.ADD_BREAKPOINT_FILE_EXCLUDED_BY_FILTERS
527
576
 
528
- if breakpoint_type == 'python-line':
577
+ if breakpoint_type == "python-line":
529
578
  added_breakpoint = LineBreakpoint(
530
- breakpoint_id, line, condition, func_name, expression, suspend_policy, hit_condition=hit_condition, is_logpoint=is_logpoint)
579
+ breakpoint_id, line, condition, func_name, expression, suspend_policy, hit_condition=hit_condition, is_logpoint=is_logpoint
580
+ )
531
581
 
532
582
  file_to_line_to_breakpoints = py_db.breakpoints
533
583
  file_to_id_to_breakpoint = py_db.file_to_id_to_line_breakpoint
@@ -538,9 +588,20 @@ class PyDevdAPI(object):
538
588
  plugin = py_db.get_plugin_lazy_init()
539
589
  if plugin is not None:
540
590
  add_plugin_breakpoint_result = plugin.add_breakpoint(
541
- 'add_line_breakpoint', py_db, breakpoint_type, canonical_normalized_filename,
542
- breakpoint_id, line, condition, expression, func_name, hit_condition=hit_condition, is_logpoint=is_logpoint,
543
- add_breakpoint_result=result, on_changed_breakpoint_state=on_changed_breakpoint_state)
591
+ "add_line_breakpoint",
592
+ py_db,
593
+ breakpoint_type,
594
+ canonical_normalized_filename,
595
+ breakpoint_id,
596
+ line,
597
+ condition,
598
+ expression,
599
+ func_name,
600
+ hit_condition=hit_condition,
601
+ is_logpoint=is_logpoint,
602
+ add_breakpoint_result=result,
603
+ on_changed_breakpoint_state=on_changed_breakpoint_state,
604
+ )
544
605
 
545
606
  if add_plugin_breakpoint_result is not None:
546
607
  supported_type = True
@@ -552,7 +613,7 @@ class PyDevdAPI(object):
552
613
  if not supported_type:
553
614
  raise NameError(breakpoint_type)
554
615
 
555
- pydev_log.debug('Added breakpoint:%s - line:%s - func_name:%s\n', canonical_normalized_filename, line, func_name)
616
+ pydev_log.debug("Added breakpoint:%s - line:%s - func_name:%s\n", canonical_normalized_filename, line, func_name)
556
617
 
557
618
  if canonical_normalized_filename in file_to_id_to_breakpoint:
558
619
  id_to_pybreakpoint = file_to_id_to_breakpoint[canonical_normalized_filename]
@@ -562,46 +623,44 @@ class PyDevdAPI(object):
562
623
  id_to_pybreakpoint[breakpoint_id] = added_breakpoint
563
624
  py_db.consolidate_breakpoints(canonical_normalized_filename, id_to_pybreakpoint, file_to_line_to_breakpoints)
564
625
  if py_db.plugin is not None:
565
- py_db.has_plugin_line_breaks = py_db.plugin.has_line_breaks()
566
- py_db.plugin.after_breakpoints_consolidated(py_db, canonical_normalized_filename, id_to_pybreakpoint, file_to_line_to_breakpoints)
626
+ py_db.has_plugin_line_breaks = py_db.plugin.has_line_breaks(py_db)
627
+ py_db.plugin.after_breakpoints_consolidated(
628
+ py_db, canonical_normalized_filename, id_to_pybreakpoint, file_to_line_to_breakpoints
629
+ )
567
630
 
568
631
  py_db.on_breakpoints_changed()
569
632
  return result
570
633
 
571
634
  def reapply_breakpoints(self, py_db):
572
- '''
635
+ """
573
636
  Reapplies all the received breakpoints as they were received by the API (so, new
574
637
  translations are applied).
575
- '''
576
- pydev_log.debug('Reapplying breakpoints.')
638
+ """
639
+ pydev_log.debug("Reapplying breakpoints.")
577
640
  values = list(py_db.api_received_breakpoints.values()) # Create a copy with items to reapply.
578
- self.remove_all_breakpoints(py_db, '*')
641
+ self.remove_all_breakpoints(py_db, "*")
579
642
  for val in values:
580
643
  _new_filename, api_add_breakpoint_params = val
581
644
  self.add_breakpoint(py_db, *api_add_breakpoint_params)
582
645
 
583
646
  def remove_all_breakpoints(self, py_db, received_filename):
584
- '''
647
+ """
585
648
  Removes all the breakpoints from a given file or from all files if received_filename == '*'.
586
649
 
587
650
  :param str received_filename:
588
651
  Note: must be sent as it was received in the protocol. It may be translated in this
589
652
  function.
590
- '''
653
+ """
591
654
  assert received_filename.__class__ == str # i.e.: bytes on py2 and str on py3
592
655
  changed = False
593
- lst = [
594
- py_db.file_to_id_to_line_breakpoint,
595
- py_db.file_to_id_to_plugin_breakpoint,
596
- py_db.breakpoints
597
- ]
598
- if hasattr(py_db, 'django_breakpoints'):
656
+ lst = [py_db.file_to_id_to_line_breakpoint, py_db.file_to_id_to_plugin_breakpoint, py_db.breakpoints]
657
+ if hasattr(py_db, "django_breakpoints"):
599
658
  lst.append(py_db.django_breakpoints)
600
659
 
601
- if hasattr(py_db, 'jinja2_breakpoints'):
660
+ if hasattr(py_db, "jinja2_breakpoints"):
602
661
  lst.append(py_db.jinja2_breakpoints)
603
662
 
604
- if received_filename == '*':
663
+ if received_filename == "*":
605
664
  py_db.api_received_breakpoints.clear()
606
665
 
607
666
  for file_to_id_to_breakpoint in lst:
@@ -631,7 +690,7 @@ class PyDevdAPI(object):
631
690
  py_db.on_breakpoints_changed(removed=True)
632
691
 
633
692
  def remove_breakpoint(self, py_db, received_filename, breakpoint_type, breakpoint_id):
634
- '''
693
+ """
635
694
  :param str received_filename:
636
695
  Note: must be sent as it was received in the protocol. It may be translated in this
637
696
  function.
@@ -640,7 +699,7 @@ class PyDevdAPI(object):
640
699
  One of: 'python-line', 'django-line', 'jinja2-line'.
641
700
 
642
701
  :param int breakpoint_id:
643
- '''
702
+ """
644
703
  received_filename_normalized = pydevd_file_utils.normcase_from_client(received_filename)
645
704
  for key, val in list(py_db.api_received_breakpoints.items()):
646
705
  original_filename_normalized, existing_breakpoint_id = key
@@ -649,14 +708,13 @@ class PyDevdAPI(object):
649
708
  del py_db.api_received_breakpoints[key]
650
709
  break
651
710
  else:
652
- pydev_log.info(
653
- 'Did not find breakpoint to remove: %s (breakpoint id: %s)', received_filename, breakpoint_id)
711
+ pydev_log.info("Did not find breakpoint to remove: %s (breakpoint id: %s)", received_filename, breakpoint_id)
654
712
 
655
713
  file_to_id_to_breakpoint = None
656
714
  received_filename = self.filename_to_server(received_filename)
657
715
  canonical_normalized_filename = pydevd_file_utils.canonical_normalized_path(received_filename)
658
716
 
659
- if breakpoint_type == 'python-line':
717
+ if breakpoint_type == "python-line":
660
718
  file_to_line_to_breakpoints = py_db.breakpoints
661
719
  file_to_id_to_breakpoint = py_db.file_to_id_to_line_breakpoint
662
720
 
@@ -667,25 +725,33 @@ class PyDevdAPI(object):
667
725
  file_to_line_to_breakpoints = result
668
726
 
669
727
  if file_to_id_to_breakpoint is None:
670
- pydev_log.critical('Error removing breakpoint. Cannot handle breakpoint of type %s', breakpoint_type)
728
+ pydev_log.critical("Error removing breakpoint. Cannot handle breakpoint of type %s", breakpoint_type)
671
729
 
672
730
  else:
673
731
  try:
674
732
  id_to_pybreakpoint = file_to_id_to_breakpoint.get(canonical_normalized_filename, {})
675
733
  if DebugInfoHolder.DEBUG_TRACE_LEVEL >= 1:
676
734
  existing = id_to_pybreakpoint[breakpoint_id]
677
- pydev_log.info('Removed breakpoint:%s - line:%s - func_name:%s (id: %s)\n' % (
678
- canonical_normalized_filename, existing.line, existing.func_name, breakpoint_id))
735
+ pydev_log.info(
736
+ "Removed breakpoint:%s - line:%s - func_name:%s (id: %s)\n"
737
+ % (canonical_normalized_filename, existing.line, existing.func_name, breakpoint_id)
738
+ )
679
739
 
680
740
  del id_to_pybreakpoint[breakpoint_id]
681
741
  py_db.consolidate_breakpoints(canonical_normalized_filename, id_to_pybreakpoint, file_to_line_to_breakpoints)
682
742
  if py_db.plugin is not None:
683
- py_db.has_plugin_line_breaks = py_db.plugin.has_line_breaks()
684
- py_db.plugin.after_breakpoints_consolidated(py_db, canonical_normalized_filename, id_to_pybreakpoint, file_to_line_to_breakpoints)
743
+ py_db.has_plugin_line_breaks = py_db.plugin.has_line_breaks(py_db)
744
+ py_db.plugin.after_breakpoints_consolidated(
745
+ py_db, canonical_normalized_filename, id_to_pybreakpoint, file_to_line_to_breakpoints
746
+ )
685
747
 
686
748
  except KeyError:
687
- pydev_log.info("Error removing breakpoint: Breakpoint id not found: %s id: %s. Available ids: %s\n",
688
- canonical_normalized_filename, breakpoint_id, list(id_to_pybreakpoint))
749
+ pydev_log.info(
750
+ "Error removing breakpoint: Breakpoint id not found: %s id: %s. Available ids: %s\n",
751
+ canonical_normalized_filename,
752
+ breakpoint_id,
753
+ list(id_to_pybreakpoint),
754
+ )
689
755
 
690
756
  py_db.on_breakpoints_changed(removed=True)
691
757
 
@@ -697,31 +763,27 @@ class PyDevdAPI(object):
697
763
  py_db.function_breakpoint_name_to_breakpoint = function_breakpoint_name_to_breakpoint
698
764
  py_db.on_breakpoints_changed()
699
765
 
700
- def request_exec_or_evaluate(
701
- self, py_db, seq, thread_id, frame_id, expression, is_exec, trim_if_too_big, attr_to_set_result):
766
+ def request_exec_or_evaluate(self, py_db, seq, thread_id, frame_id, expression, is_exec, trim_if_too_big, attr_to_set_result):
702
767
  py_db.post_method_as_internal_command(
703
- thread_id, internal_evaluate_expression,
704
- seq, thread_id, frame_id, expression, is_exec, trim_if_too_big, attr_to_set_result)
768
+ thread_id, internal_evaluate_expression, seq, thread_id, frame_id, expression, is_exec, trim_if_too_big, attr_to_set_result
769
+ )
705
770
 
706
- def request_exec_or_evaluate_json(
707
- self, py_db, request, thread_id):
708
- py_db.post_method_as_internal_command(
709
- thread_id, internal_evaluate_expression_json, request, thread_id)
771
+ def request_exec_or_evaluate_json(self, py_db, request, thread_id):
772
+ py_db.post_method_as_internal_command(thread_id, internal_evaluate_expression_json, request, thread_id)
710
773
 
711
774
  def request_set_expression_json(self, py_db, request, thread_id):
712
- py_db.post_method_as_internal_command(
713
- thread_id, internal_set_expression_json, request, thread_id)
775
+ py_db.post_method_as_internal_command(thread_id, internal_set_expression_json, request, thread_id)
714
776
 
715
777
  def request_console_exec(self, py_db, seq, thread_id, frame_id, expression):
716
778
  int_cmd = InternalConsoleExec(seq, thread_id, frame_id, expression)
717
779
  py_db.post_internal_command(int_cmd, thread_id)
718
780
 
719
781
  def request_load_source(self, py_db, seq, filename):
720
- '''
782
+ """
721
783
  :param str filename:
722
784
  Note: must be sent as it was received in the protocol. It may be translated in this
723
785
  function.
724
- '''
786
+ """
725
787
  try:
726
788
  filename = self.filename_to_server(filename)
727
789
  assert filename.__class__ == str # i.e.: bytes on py2 and str on py3
@@ -735,13 +797,13 @@ class PyDevdAPI(object):
735
797
  py_db.writer.add_command(cmd)
736
798
 
737
799
  def get_decompiled_source_from_frame_id(self, py_db, frame_id):
738
- '''
800
+ """
739
801
  :param py_db:
740
802
  :param frame_id:
741
803
  :throws Exception:
742
804
  If unable to get the frame in the currently paused frames or if some error happened
743
805
  when decompiling.
744
- '''
806
+ """
745
807
  variable = py_db.suspended_frames_manager.get_variable(int(frame_id))
746
808
  frame = variable.value
747
809
 
@@ -749,7 +811,7 @@ class PyDevdAPI(object):
749
811
  lines = (linecache.getline(frame.f_code.co_filename, i) for i in itertools.count(1))
750
812
  lines = itertools.takewhile(bool, lines) # empty lines are '\n', EOF is ''
751
813
 
752
- source = ''.join(lines)
814
+ source = "".join(lines)
753
815
  if not source:
754
816
  source = code_to_bytecode_representation(frame.f_code)
755
817
 
@@ -765,17 +827,17 @@ class PyDevdAPI(object):
765
827
  py_db.writer.add_command(cmd)
766
828
 
767
829
  def add_python_exception_breakpoint(
768
- self,
769
- py_db,
770
- exception,
771
- condition,
772
- expression,
773
- notify_on_handled_exceptions,
774
- notify_on_unhandled_exceptions,
775
- notify_on_user_unhandled_exceptions,
776
- notify_on_first_raise_only,
777
- ignore_libraries,
778
- ):
830
+ self,
831
+ py_db,
832
+ exception,
833
+ condition,
834
+ expression,
835
+ notify_on_handled_exceptions,
836
+ notify_on_unhandled_exceptions,
837
+ notify_on_user_unhandled_exceptions,
838
+ notify_on_first_raise_only,
839
+ ignore_libraries,
840
+ ):
779
841
  exception_breakpoint = py_db.add_break_on_exception(
780
842
  exception,
781
843
  condition=condition,
@@ -794,10 +856,10 @@ class PyDevdAPI(object):
794
856
  supported_type = False
795
857
  plugin = py_db.get_plugin_lazy_init()
796
858
  if plugin is not None:
797
- supported_type = plugin.add_breakpoint('add_exception_breakpoint', py_db, breakpoint_type, exception)
859
+ supported_type = plugin.add_breakpoint("add_exception_breakpoint", py_db, breakpoint_type, exception)
798
860
 
799
861
  if supported_type:
800
- py_db.has_plugin_exception_breaks = py_db.plugin.has_exception_breaks()
862
+ py_db.has_plugin_exception_breaks = py_db.plugin.has_exception_breaks(py_db)
801
863
  py_db.on_breakpoints_changed()
802
864
  else:
803
865
  raise NameError(breakpoint_type)
@@ -830,9 +892,9 @@ class PyDevdAPI(object):
830
892
  supported_type = plugin.remove_exception_breakpoint(py_db, exception_type, exception)
831
893
 
832
894
  if supported_type:
833
- py_db.has_plugin_exception_breaks = py_db.plugin.has_exception_breaks()
895
+ py_db.has_plugin_exception_breaks = py_db.plugin.has_exception_breaks(py_db)
834
896
  else:
835
- pydev_log.info('No exception of type: %s was previously registered.', exception_type)
897
+ pydev_log.info("No exception of type: %s was previously registered.", exception_type)
836
898
 
837
899
  py_db.on_breakpoints_changed(removed=True)
838
900
 
@@ -847,9 +909,9 @@ class PyDevdAPI(object):
847
909
  py_db.on_breakpoints_changed(removed=True)
848
910
 
849
911
  def set_project_roots(self, py_db, project_roots):
850
- '''
912
+ """
851
913
  :param str project_roots:
852
- '''
914
+ """
853
915
  py_db.set_project_roots(project_roots)
854
916
 
855
917
  def set_stepping_resumes_all_threads(self, py_db, stepping_resumes_all_threads):
@@ -859,27 +921,25 @@ class PyDevdAPI(object):
859
921
  from _pydevd_bundle.pydevd_filtering import ExcludeFilter # noqa
860
922
 
861
923
  def set_exclude_filters(self, py_db, exclude_filters):
862
- '''
924
+ """
863
925
  :param list(PyDevdAPI.ExcludeFilter) exclude_filters:
864
- '''
926
+ """
865
927
  py_db.set_exclude_filters(exclude_filters)
866
928
 
867
929
  def set_use_libraries_filter(self, py_db, use_libraries_filter):
868
930
  py_db.set_use_libraries_filter(use_libraries_filter)
869
931
 
870
932
  def request_get_variable_json(self, py_db, request, thread_id):
871
- '''
933
+ """
872
934
  :param VariablesRequest request:
873
- '''
874
- py_db.post_method_as_internal_command(
875
- thread_id, internal_get_variable_json, request)
935
+ """
936
+ py_db.post_method_as_internal_command(thread_id, internal_get_variable_json, request)
876
937
 
877
938
  def request_change_variable_json(self, py_db, request, thread_id):
878
- '''
939
+ """
879
940
  :param SetVariableRequest request:
880
- '''
881
- py_db.post_method_as_internal_command(
882
- thread_id, internal_change_variable_json, request)
941
+ """
942
+ py_db.post_method_as_internal_command(thread_id, internal_change_variable_json, request)
883
943
 
884
944
  def set_dont_trace_start_end_patterns(self, py_db, start_patterns, end_patterns):
885
945
  # Note: start/end patterns normalized internally.
@@ -889,8 +949,7 @@ class PyDevdAPI(object):
889
949
  # After it's set the first time, we can still change it, but we need to reset the
890
950
  # related caches.
891
951
  reset_caches = False
892
- dont_trace_start_end_patterns_previously_set = \
893
- py_db.dont_trace_external_files.__name__ == 'custom_dont_trace_external_files'
952
+ dont_trace_start_end_patterns_previously_set = py_db.dont_trace_external_files.__name__ == "custom_dont_trace_external_files"
894
953
 
895
954
  if not dont_trace_start_end_patterns_previously_set and not start_patterns and not end_patterns:
896
955
  # If it wasn't set previously and start and end patterns are empty we don't need to do anything.
@@ -899,8 +958,10 @@ class PyDevdAPI(object):
899
958
  if not py_db.is_cache_file_type_empty():
900
959
  # i.e.: custom function set in set_dont_trace_start_end_patterns.
901
960
  if dont_trace_start_end_patterns_previously_set:
902
- reset_caches = py_db.dont_trace_external_files.start_patterns != start_patterns or \
903
- py_db.dont_trace_external_files.end_patterns != end_patterns
961
+ reset_caches = (
962
+ py_db.dont_trace_external_files.start_patterns != start_patterns
963
+ or py_db.dont_trace_external_files.end_patterns != end_patterns
964
+ )
904
965
 
905
966
  else:
906
967
  reset_caches = True
@@ -919,11 +980,15 @@ class PyDevdAPI(object):
919
980
  def stop_on_entry(self):
920
981
  main_thread = pydevd_utils.get_main_thread()
921
982
  if main_thread is None:
922
- pydev_log.critical('Could not find main thread while setting Stop on Entry.')
983
+ pydev_log.critical("Could not find main thread while setting Stop on Entry.")
923
984
  else:
924
985
  info = set_additional_thread_info(main_thread)
925
986
  info.pydev_original_step_cmd = CMD_STOP_ON_START
926
987
  info.pydev_step_cmd = CMD_STEP_INTO_MY_CODE
988
+ info.update_stepping_info()
989
+ if PYDEVD_USE_SYS_MONITORING:
990
+ pydevd_sys_monitoring.update_monitor_events(suspend_requested=True)
991
+ pydevd_sys_monitoring.restart_events()
927
992
 
928
993
  def set_ignore_system_exit_codes(self, py_db, ignore_system_exit_codes):
929
994
  py_db.set_ignore_system_exit_codes(ignore_system_exit_codes)
@@ -931,7 +996,7 @@ class PyDevdAPI(object):
931
996
  SourceMappingEntry = pydevd_source_mapping.SourceMappingEntry
932
997
 
933
998
  def set_source_mapping(self, py_db, source_filename, mapping):
934
- '''
999
+ """
935
1000
  :param str source_filename:
936
1001
  The filename for the source mapping (bytes on py2 and str on py3).
937
1002
  This filename will be made absolute in this function.
@@ -942,7 +1007,7 @@ class PyDevdAPI(object):
942
1007
  :return str:
943
1008
  An error message if it was not possible to set the mapping or an empty string if
944
1009
  everything is ok.
945
- '''
1010
+ """
946
1011
  source_filename = self.filename_to_server(source_filename)
947
1012
  absolute_source_filename = pydevd_file_utils.absolute_path(source_filename)
948
1013
  for map_entry in mapping:
@@ -952,16 +1017,16 @@ class PyDevdAPI(object):
952
1017
  return error_msg
953
1018
 
954
1019
  self.reapply_breakpoints(py_db)
955
- return ''
1020
+ return ""
956
1021
 
957
1022
  def set_variable_presentation(self, py_db, variable_presentation):
958
1023
  assert isinstance(variable_presentation, self.VariablePresentation)
959
1024
  py_db.variable_presentation = variable_presentation
960
1025
 
961
1026
  def get_ppid(self):
962
- '''
1027
+ """
963
1028
  Provides the parent pid (even for older versions of Python on Windows).
964
- '''
1029
+ """
965
1030
  ppid = None
966
1031
 
967
1032
  try:
@@ -985,7 +1050,6 @@ class PyDevdAPI(object):
985
1050
  def _terminate_child_processes_windows(self, dont_terminate_child_pids):
986
1051
  this_pid = os.getpid()
987
1052
  for _ in range(50): # Try this at most 50 times before giving up.
988
-
989
1053
  # Note: we can't kill the process itself with taskkill, so, we
990
1054
  # list immediate children, kill that tree and then exit this process.
991
1055
 
@@ -999,11 +1063,7 @@ class PyDevdAPI(object):
999
1063
  break
1000
1064
  else:
1001
1065
  for pid in children_pids:
1002
- self._call(
1003
- ['taskkill', '/F', '/PID', str(pid), '/T'],
1004
- stdout=subprocess.PIPE,
1005
- stderr=subprocess.PIPE
1006
- )
1066
+ self._call(["taskkill", "/F", "/PID", str(pid), "/T"], stdout=subprocess.PIPE, stderr=subprocess.PIPE)
1007
1067
 
1008
1068
  del children_pids[:]
1009
1069
 
@@ -1014,22 +1074,14 @@ class PyDevdAPI(object):
1014
1074
  children_pids = []
1015
1075
  if stop:
1016
1076
  # Ask to stop forking (shouldn't be called for this process, only subprocesses).
1017
- self._call(
1018
- ['kill', '-STOP', str(initial_pid)],
1019
- stdout=subprocess.PIPE,
1020
- stderr=subprocess.PIPE
1021
- )
1077
+ self._call(["kill", "-STOP", str(initial_pid)], stdout=subprocess.PIPE, stderr=subprocess.PIPE)
1022
1078
 
1023
- list_popen = self._popen(
1024
- ['pgrep', '-P', str(initial_pid)],
1025
- stdout=subprocess.PIPE,
1026
- stderr=subprocess.PIPE
1027
- )
1079
+ list_popen = self._popen(["pgrep", "-P", str(initial_pid)], stdout=subprocess.PIPE, stderr=subprocess.PIPE)
1028
1080
 
1029
1081
  if list_popen is not None:
1030
1082
  stdout, _ = list_popen.communicate()
1031
1083
  for line in stdout.splitlines():
1032
- line = line.decode('ascii').strip()
1084
+ line = line.decode("ascii").strip()
1033
1085
  if line:
1034
1086
  pid = str(line)
1035
1087
  if pid in dont_terminate_child_pids:
@@ -1042,7 +1094,6 @@ class PyDevdAPI(object):
1042
1094
  previously_found = set()
1043
1095
 
1044
1096
  for _ in range(50): # Try this at most 50 times before giving up.
1045
-
1046
1097
  children_pids = list_children_and_stop_forking(this_pid, stop=False)
1047
1098
  found_new = False
1048
1099
 
@@ -1050,11 +1101,7 @@ class PyDevdAPI(object):
1050
1101
  if pid not in previously_found:
1051
1102
  found_new = True
1052
1103
  previously_found.add(pid)
1053
- self._call(
1054
- ['kill', '-KILL', str(pid)],
1055
- stdout=subprocess.PIPE,
1056
- stderr=subprocess.PIPE
1057
- )
1104
+ self._call(["kill", "-KILL", str(pid)], stdout=subprocess.PIPE, stderr=subprocess.PIPE)
1058
1105
 
1059
1106
  if not found_new:
1060
1107
  break
@@ -1064,7 +1111,7 @@ class PyDevdAPI(object):
1064
1111
  return subprocess.Popen(cmdline, **kwargs)
1065
1112
  except:
1066
1113
  if DebugInfoHolder.DEBUG_TRACE_LEVEL >= 1:
1067
- pydev_log.exception('Error running: %s' % (' '.join(cmdline)))
1114
+ pydev_log.exception("Error running: %s" % (" ".join(cmdline)))
1068
1115
  return None
1069
1116
 
1070
1117
  def _call(self, cmdline, **kwargs):
@@ -1072,7 +1119,7 @@ class PyDevdAPI(object):
1072
1119
  subprocess.check_call(cmdline, **kwargs)
1073
1120
  except:
1074
1121
  if DebugInfoHolder.DEBUG_TRACE_LEVEL >= 1:
1075
- pydev_log.exception('Error running: %s' % (' '.join(cmdline)))
1122
+ pydev_log.exception("Error running: %s" % (" ".join(cmdline)))
1076
1123
 
1077
1124
  def set_terminate_child_processes(self, py_db, terminate_child_processes):
1078
1125
  py_db.terminate_child_processes = terminate_child_processes
@@ -1081,19 +1128,19 @@ class PyDevdAPI(object):
1081
1128
  py_db.terminate_keyboard_interrupt = terminate_keyboard_interrupt
1082
1129
 
1083
1130
  def terminate_process(self, py_db):
1084
- '''
1131
+ """
1085
1132
  Terminates the current process (and child processes if the option to also terminate
1086
1133
  child processes is enabled).
1087
- '''
1134
+ """
1088
1135
  try:
1089
1136
  if py_db.terminate_child_processes:
1090
- pydev_log.debug('Terminating child processes.')
1137
+ pydev_log.debug("Terminating child processes.")
1091
1138
  if IS_WINDOWS:
1092
1139
  self._terminate_child_processes_windows(py_db.dont_terminate_child_pids)
1093
1140
  else:
1094
1141
  self._terminate_child_processes_linux_and_mac(py_db.dont_terminate_child_pids)
1095
1142
  finally:
1096
- pydev_log.debug('Exiting process (os._exit(0)).')
1143
+ pydev_log.debug("Exiting process (os._exit(0)).")
1097
1144
  os._exit(0)
1098
1145
 
1099
1146
  def _terminate_if_commands_processed(self, py_db):
@@ -1120,16 +1167,18 @@ def _list_ppid_and_pid():
1120
1167
  _TH32CS_SNAPPROCESS = 0x00000002
1121
1168
 
1122
1169
  class PROCESSENTRY32(ctypes.Structure):
1123
- _fields_ = [("dwSize", ctypes.c_uint32),
1124
- ("cntUsage", ctypes.c_uint32),
1125
- ("th32ProcessID", ctypes.c_uint32),
1126
- ("th32DefaultHeapID", ctypes.c_size_t),
1127
- ("th32ModuleID", ctypes.c_uint32),
1128
- ("cntThreads", ctypes.c_uint32),
1129
- ("th32ParentProcessID", ctypes.c_uint32),
1130
- ("pcPriClassBase", ctypes.c_long),
1131
- ("dwFlags", ctypes.c_uint32),
1132
- ("szExeFile", ctypes.c_char * 260)]
1170
+ _fields_ = [
1171
+ ("dwSize", ctypes.c_uint32),
1172
+ ("cntUsage", ctypes.c_uint32),
1173
+ ("th32ProcessID", ctypes.c_uint32),
1174
+ ("th32DefaultHeapID", ctypes.c_size_t),
1175
+ ("th32ModuleID", ctypes.c_uint32),
1176
+ ("cntThreads", ctypes.c_uint32),
1177
+ ("th32ParentProcessID", ctypes.c_uint32),
1178
+ ("pcPriClassBase", ctypes.c_long),
1179
+ ("dwFlags", ctypes.c_uint32),
1180
+ ("szExeFile", ctypes.c_char * 260),
1181
+ ]
1133
1182
 
1134
1183
  kernel32 = ctypes.windll.kernel32
1135
1184
  snapshot = kernel32.CreateToolhelp32Snapshot(_TH32CS_SNAPPROCESS, 0)
@@ -1138,7 +1187,7 @@ def _list_ppid_and_pid():
1138
1187
  process_entry = PROCESSENTRY32()
1139
1188
  process_entry.dwSize = ctypes.sizeof(PROCESSENTRY32)
1140
1189
  if not kernel32.Process32First(ctypes.c_void_p(snapshot), ctypes.byref(process_entry)):
1141
- pydev_log.critical('Process32First failed (getting process from CreateToolhelp32Snapshot).')
1190
+ pydev_log.critical("Process32First failed (getting process from CreateToolhelp32Snapshot).")
1142
1191
  else:
1143
1192
  while True:
1144
1193
  ppid_and_pids.append((process_entry.th32ParentProcessID, process_entry.th32ProcessID))