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
@@ -1,4 +1,4 @@
1
- r'''
1
+ r"""
2
2
  This module provides utilities to get the absolute filenames so that we can be sure that:
3
3
  - The case of a file will match the actual file in the filesystem (otherwise breakpoints won't be hit).
4
4
  - Providing means for the user to make path conversions when doing a remote debugging session in
@@ -39,11 +39,10 @@ r'''
39
39
  @note: for doing a remote debugging session, all the pydevd_ files must be on the server accessible
40
40
  through the PYTHONPATH (and the PATHS_FROM_ECLIPSE_TO_PYTHON only needs to be set on the target
41
41
  machine for the paths that'll actually have breakpoints).
42
- '''
42
+ """
43
43
 
44
44
  from _pydev_bundle import pydev_log
45
- from _pydevd_bundle.pydevd_constants import DebugInfoHolder, IS_WINDOWS, IS_JYTHON, \
46
- DISABLE_FILE_VALIDATION, is_true_in_env, IS_MAC
45
+ from _pydevd_bundle.pydevd_constants import DebugInfoHolder, IS_WINDOWS, IS_JYTHON, DISABLE_FILE_VALIDATION, is_true_in_env, IS_MAC
47
46
  from _pydev_bundle._pydev_filesystem_encoding import getfilesystemencoding
48
47
  from _pydevd_bundle.pydevd_comm_constants import file_system_encoding, filesystem_encoding_is_utf8
49
48
  from _pydev_bundle.pydev_log import error_once
@@ -77,13 +76,14 @@ def _get_library_dir():
77
76
  library_dir = None
78
77
  try:
79
78
  import sysconfig
80
- library_dir = sysconfig.get_path('purelib')
79
+
80
+ library_dir = sysconfig.get_path("purelib")
81
81
  except ImportError:
82
82
  pass # i.e.: Only 2.7 onwards
83
83
 
84
84
  if library_dir is None or not os_path_exists(library_dir):
85
85
  for path in sys.path:
86
- if os_path_exists(path) and os.path.basename(path) == 'site-packages':
86
+ if os_path_exists(path) and os.path.basename(path) == "site-packages":
87
87
  library_dir = path
88
88
  break
89
89
 
@@ -101,14 +101,14 @@ _library_dir = _get_library_dir()
101
101
  # and the 2nd element is the path in the server machine.
102
102
  # see module docstring for more details.
103
103
  try:
104
- PATHS_FROM_ECLIPSE_TO_PYTHON = json.loads(os.environ.get('PATHS_FROM_ECLIPSE_TO_PYTHON', '[]'))
104
+ PATHS_FROM_ECLIPSE_TO_PYTHON = json.loads(os.environ.get("PATHS_FROM_ECLIPSE_TO_PYTHON", "[]"))
105
105
  except Exception:
106
- pydev_log.critical('Error loading PATHS_FROM_ECLIPSE_TO_PYTHON from environment variable.')
106
+ pydev_log.critical("Error loading PATHS_FROM_ECLIPSE_TO_PYTHON from environment variable.")
107
107
  pydev_log.exception()
108
108
  PATHS_FROM_ECLIPSE_TO_PYTHON = []
109
109
  else:
110
110
  if not isinstance(PATHS_FROM_ECLIPSE_TO_PYTHON, list):
111
- pydev_log.critical('Expected PATHS_FROM_ECLIPSE_TO_PYTHON loaded from environment variable to be a list.')
111
+ pydev_log.critical("Expected PATHS_FROM_ECLIPSE_TO_PYTHON loaded from environment variable to be a list.")
112
112
  PATHS_FROM_ECLIPSE_TO_PYTHON = []
113
113
  else:
114
114
  # Converting json lists to tuple
@@ -120,9 +120,9 @@ else:
120
120
  # r'd:\temp\temp_workspace_2\test_python\src\hhh\xxx')
121
121
  # ]
122
122
 
123
- convert_to_long_pathname = lambda filename:filename
124
- convert_to_short_pathname = lambda filename:filename
125
- get_path_with_real_case = lambda filename:filename
123
+ convert_to_long_pathname = lambda filename: filename
124
+ convert_to_short_pathname = lambda filename: filename
125
+ get_path_with_real_case = lambda filename: filename
126
126
 
127
127
  # Note that we have a cache for previous list dirs... the only case where this may be an
128
128
  # issue is if the user actually changes the case of an existing file on while
@@ -155,15 +155,14 @@ def _resolve_listing(resolved, iter_parts_lowercase, cache=_listdir_cache):
155
155
  cache[(resolved_lower, resolve_lowercase)] = resolved_joined
156
156
  break
157
157
  else:
158
- raise FileNotFoundError('Unable to find: %s in %s. Dir Contents: %s' % (
159
- resolve_lowercase, resolved, dir_contents))
158
+ raise FileNotFoundError("Unable to find: %s in %s. Dir Contents: %s" % (resolve_lowercase, resolved, dir_contents))
160
159
 
161
160
  resolved = resolved_joined
162
161
 
163
162
 
164
163
  def _resolve_listing_parts(resolved, parts_in_lowercase, filename):
165
164
  try:
166
- if parts_in_lowercase == ['']:
165
+ if parts_in_lowercase == [""]:
167
166
  return resolved
168
167
  return _resolve_listing(resolved, iter(parts_in_lowercase))
169
168
  except FileNotFoundError:
@@ -175,10 +174,12 @@ def _resolve_listing_parts(resolved, parts_in_lowercase, filename):
175
174
  if os_path_exists(filename):
176
175
  # This is really strange, ask the user to report as error.
177
176
  pydev_log.critical(
178
- 'pydev debugger: critical: unable to get real case for file. Details:\n'
179
- 'filename: %s\ndrive: %s\nparts: %s\n'
180
- '(please create a ticket in the tracker to address this).',
181
- filename, resolved, parts_in_lowercase
177
+ "pydev debugger: critical: unable to get real case for file. Details:\n"
178
+ "filename: %s\ndrive: %s\nparts: %s\n"
179
+ "(please create a ticket in the tracker to address this).",
180
+ filename,
181
+ resolved,
182
+ parts_in_lowercase,
182
183
  )
183
184
  pydev_log.exception()
184
185
  # Don't fail, just return the original file passed.
@@ -189,15 +190,16 @@ def _resolve_listing_parts(resolved, parts_in_lowercase, filename):
189
190
  # Don't fail nor log unless the trace level is at least info. Just return the original file passed.
190
191
  if DebugInfoHolder.DEBUG_TRACE_LEVEL >= 1:
191
192
  pydev_log.info(
192
- 'pydev debugger: OSError: Unable to get real case for file. Details:\n'
193
- 'filename: %s\ndrive: %s\nparts: %s\n',
194
- filename, resolved, parts_in_lowercase
193
+ "pydev debugger: OSError: Unable to get real case for file. Details:\n" "filename: %s\ndrive: %s\nparts: %s\n",
194
+ filename,
195
+ resolved,
196
+ parts_in_lowercase,
195
197
  )
196
198
  pydev_log.exception()
197
199
  return filename
198
200
 
199
201
 
200
- if sys.platform == 'win32':
202
+ if sys.platform == "win32":
201
203
  try:
202
204
  import ctypes
203
205
  from ctypes.wintypes import MAX_PATH, LPCWSTR, LPWSTR, DWORD
@@ -235,10 +237,10 @@ if sys.platform == 'win32':
235
237
  # consistently (there are settings to disable it on Windows).
236
238
  # So, using approach which resolves by listing the dir.
237
239
 
238
- if '~' in filename:
240
+ if "~" in filename:
239
241
  filename = convert_to_long_pathname(filename)
240
242
 
241
- if filename.startswith('<') or not os_path_exists(filename):
243
+ if filename.startswith("<") or not os_path_exists(filename):
242
244
  return filename # Not much we can do.
243
245
 
244
246
  drive, parts = os.path.splitdrive(os.path.normpath(filename))
@@ -263,10 +265,11 @@ if sys.platform == 'win32':
263
265
  elif IS_JYTHON and IS_WINDOWS:
264
266
 
265
267
  def get_path_with_real_case(filename):
266
- if filename.startswith('<'):
268
+ if filename.startswith("<"):
267
269
  return filename
268
270
 
269
271
  from java.io import File # noqa
272
+
270
273
  f = File(filename)
271
274
  ret = f.getCanonicalPath()
272
275
  return ret
@@ -274,18 +277,19 @@ elif IS_JYTHON and IS_WINDOWS:
274
277
  elif IS_MAC:
275
278
 
276
279
  def get_path_with_real_case(filename):
277
- if filename.startswith('<') or not os_path_exists(filename):
280
+ if filename.startswith("<") or not os_path_exists(filename):
278
281
  return filename # Not much we can do.
279
282
 
280
- parts = filename.lower().split('/')
283
+ parts = filename.lower().split("/")
281
284
 
282
- found = ''
283
- while parts and parts[0] == '':
284
- found += '/'
285
+ found = ""
286
+ while parts and parts[0] == "":
287
+ found += "/"
285
288
  parts = parts[1:]
286
289
 
287
290
  return _resolve_listing_parts(found, parts, filename)
288
291
 
292
+
289
293
  if IS_JYTHON:
290
294
 
291
295
  def _normcase_windows(filename):
@@ -295,7 +299,7 @@ else:
295
299
 
296
300
  def _normcase_windows(filename):
297
301
  # `normcase` doesn't lower case on Python 2 for non-English locale, so we should do it manually.
298
- if '~' in filename:
302
+ if "~" in filename:
299
303
  filename = convert_to_long_pathname(filename)
300
304
 
301
305
  filename = _nt_os_normcase(filename)
@@ -306,8 +310,8 @@ def _normcase_linux(filename):
306
310
  return filename # no-op
307
311
 
308
312
 
309
- _filename_normalization = os.environ.get('PYDEVD_FILENAME_NORMALIZATION', '').lower()
310
- if _filename_normalization == 'lower':
313
+ _filename_normalization = os.environ.get("PYDEVD_FILENAME_NORMALIZATION", "").lower()
314
+ if _filename_normalization == "lower":
311
315
  # Note: this is mostly for testing (forcing to always lower-case all contents
312
316
  # internally -- used to mimick Windows normalization on Linux).
313
317
 
@@ -316,7 +320,7 @@ if _filename_normalization == 'lower':
316
320
 
317
321
  _default_normcase = _normcase_lower
318
322
 
319
- elif _filename_normalization == 'none':
323
+ elif _filename_normalization == "none":
320
324
  # Disable any filename normalization may be an option on Windows if the
321
325
  # user is having issues under some circumstances.
322
326
  _default_normcase = _normcase_linux
@@ -343,7 +347,7 @@ def normcase(s, NORMCASE_CACHE={}):
343
347
  return normalized
344
348
 
345
349
 
346
- _ide_os = 'WINDOWS' if IS_WINDOWS else 'UNIX'
350
+ _ide_os = "WINDOWS" if IS_WINDOWS else "UNIX"
347
351
 
348
352
  _normcase_from_client = normcase
349
353
 
@@ -352,32 +356,31 @@ def normcase_from_client(s):
352
356
  return _normcase_from_client(s)
353
357
 
354
358
 
355
- DEBUG_CLIENT_SERVER_TRANSLATION = os.environ.get('DEBUG_PYDEVD_PATHS_TRANSLATION', 'False').lower() in ('1', 'true')
359
+ DEBUG_CLIENT_SERVER_TRANSLATION = os.environ.get("DEBUG_PYDEVD_PATHS_TRANSLATION", "False").lower() in ("1", "true")
356
360
 
357
361
 
358
362
  def set_ide_os(os):
359
- '''
363
+ """
360
364
  We need to set the IDE os because the host where the code is running may be
361
365
  actually different from the client (and the point is that we want the proper
362
366
  paths to translate from the client to the server).
363
367
 
364
368
  :param os:
365
369
  'UNIX' or 'WINDOWS'
366
- '''
370
+ """
367
371
  global _ide_os
368
372
  global _normcase_from_client
369
373
  prev = _ide_os
370
- if os == 'WIN': # Apparently PyCharm uses 'WIN' (https://github.com/fabioz/PyDev.Debugger/issues/116)
371
- os = 'WINDOWS'
374
+ if os == "WIN": # Apparently PyCharm uses 'WIN' (https://github.com/fabioz/PyDev.Debugger/issues/116)
375
+ os = "WINDOWS"
372
376
 
373
- assert os in ('WINDOWS', 'UNIX')
377
+ assert os in ("WINDOWS", "UNIX")
374
378
 
375
379
  if DEBUG_CLIENT_SERVER_TRANSLATION:
376
- print('pydev debugger: client OS: %s' % (os,))
380
+ print("pydev debugger: client OS: %s" % (os,))
377
381
 
378
382
  _normcase_from_client = normcase
379
- if os == 'WINDOWS':
380
-
383
+ if os == "WINDOWS":
381
384
  # Client in Windows and server in Unix, we need to normalize the case.
382
385
  if not IS_WINDOWS:
383
386
  _normcase_from_client = _normcase_windows
@@ -399,28 +402,28 @@ NORM_PATHS_AND_BASE_CONTAINER = {}
399
402
 
400
403
 
401
404
  def canonical_normalized_path(filename):
402
- '''
405
+ """
403
406
  This returns a filename that is canonical and it's meant to be used internally
404
407
  to store information on breakpoints and see if there's any hit on it.
405
408
 
406
409
  Note that this version is only internal as it may not match the case and
407
410
  may have symlinks resolved (and thus may not match what the user expects
408
411
  in the editor).
409
- '''
412
+ """
410
413
  return get_abs_path_real_path_and_base_from_file(filename)[1]
411
414
 
412
415
 
413
416
  def absolute_path(filename):
414
- '''
417
+ """
415
418
  Provides a version of the filename that's absolute (and NOT normalized).
416
- '''
419
+ """
417
420
  return get_abs_path_real_path_and_base_from_file(filename)[0]
418
421
 
419
422
 
420
423
  def basename(filename):
421
- '''
424
+ """
422
425
  Provides the basename for a file.
423
- '''
426
+ """
424
427
  return get_abs_path_real_path_and_base_from_file(filename)[2]
425
428
 
426
429
 
@@ -430,7 +433,7 @@ def _abs_and_canonical_path(filename, NORM_PATHS_CONTAINER=NORM_PATHS_CONTAINER)
430
433
  return NORM_PATHS_CONTAINER[filename]
431
434
  except:
432
435
  if filename.__class__ != str:
433
- raise AssertionError('Paths passed to _abs_and_canonical_path must be str. Found: %s (%s)' % (filename, type(filename)))
436
+ raise AssertionError("Paths passed to _abs_and_canonical_path must be str. Found: %s (%s)" % (filename, type(filename)))
434
437
  if os is None: # Interpreter shutdown
435
438
  return filename, filename
436
439
 
@@ -475,7 +478,7 @@ def _get_relative_filename_abs_path(filename, func, os_path_exists=os_path_exist
475
478
 
476
479
 
477
480
  def _apply_func_and_normalize_case(filename, func, isabs, normalize_case, os_path_exists=os_path_exists, join=join):
478
- if filename.startswith('<'):
481
+ if filename.startswith("<"):
479
482
  # Not really a file, rather a synthetic name like <string> or <ipython-...>;
480
483
  # shouldn't be normalized.
481
484
  return filename
@@ -486,23 +489,23 @@ def _apply_func_and_normalize_case(filename, func, isabs, normalize_case, os_pat
486
489
  if not os_path_exists(r):
487
490
  r = _get_relative_filename_abs_path(filename, func)
488
491
 
489
- ind = r.find('.zip')
492
+ ind = r.find(".zip")
490
493
  if ind == -1:
491
- ind = r.find('.egg')
494
+ ind = r.find(".egg")
492
495
  if ind != -1:
493
496
  ind += 4
494
497
  zip_path = r[:ind]
495
498
  inner_path = r[ind:]
496
- if inner_path.startswith('!'):
499
+ if inner_path.startswith("!"):
497
500
  # Note (fabioz): although I can replicate this by creating a file ending as
498
501
  # .zip! or .egg!, I don't really know what's the real-world case for this
499
502
  # (still kept as it was added by @jetbrains, but it should probably be reviewed
500
503
  # later on).
501
504
  # Note 2: it goes hand-in-hand with 'exists'.
502
505
  inner_path = inner_path[1:]
503
- zip_path = zip_path + '!'
506
+ zip_path = zip_path + "!"
504
507
 
505
- if inner_path.startswith('/') or inner_path.startswith('\\'):
508
+ if inner_path.startswith("/") or inner_path.startswith("\\"):
506
509
  inner_path = inner_path[1:]
507
510
  if inner_path:
508
511
  if normalize_case:
@@ -529,9 +532,9 @@ def exists(filename):
529
532
  if os_path_exists(filename):
530
533
  return True
531
534
 
532
- ind = filename.find('.zip')
535
+ ind = filename.find(".zip")
533
536
  if ind == -1:
534
- ind = filename.find('.egg')
537
+ ind = filename.find(".egg")
535
538
 
536
539
  if ind != -1:
537
540
  ind += 4
@@ -544,7 +547,7 @@ def exists(filename):
544
547
  # later on).
545
548
  # Note 2: it goes hand-in-hand with '_apply_func_and_normalize_case'.
546
549
  inner_path = inner_path[1:]
547
- zip_path = zip_path + '!'
550
+ zip_path = zip_path + "!"
548
551
 
549
552
  zip_file_obj = _ZIP_SEARCH_CACHE.get(zip_path, _NOT_FOUND_SENTINEL)
550
553
  if zip_file_obj is None:
@@ -552,24 +555,25 @@ def exists(filename):
552
555
  elif zip_file_obj is _NOT_FOUND_SENTINEL:
553
556
  try:
554
557
  import zipfile
555
- zip_file_obj = zipfile.ZipFile(zip_path, 'r')
558
+
559
+ zip_file_obj = zipfile.ZipFile(zip_path, "r")
556
560
  _ZIP_SEARCH_CACHE[zip_path] = zip_file_obj
557
561
  except:
558
562
  _ZIP_SEARCH_CACHE[zip_path] = _NOT_FOUND_SENTINEL
559
563
  return False
560
564
 
561
565
  try:
562
- if inner_path.startswith('/') or inner_path.startswith('\\'):
566
+ if inner_path.startswith("/") or inner_path.startswith("\\"):
563
567
  inner_path = inner_path[1:]
564
568
 
565
- _info = zip_file_obj.getinfo(inner_path.replace('\\', '/'))
569
+ _info = zip_file_obj.getinfo(inner_path.replace("\\", "/"))
566
570
 
567
571
  return join(zip_path, inner_path)
568
572
  except KeyError:
569
573
  return False
570
574
 
571
575
  else:
572
- pydev_log.debug('os.path.exists(%r) returned False.', filename)
576
+ pydev_log.debug("os.path.exists(%r) returned False.", filename)
573
577
 
574
578
  return False
575
579
 
@@ -584,22 +588,22 @@ try:
584
588
  except AttributeError:
585
589
  code = os_path_real_path.__code__
586
590
 
587
- if code.co_filename.startswith('<frozen'):
591
+ if code.co_filename.startswith("<frozen"):
588
592
  # See: https://github.com/fabioz/PyDev.Debugger/issues/213
589
- report('Debugger warning: It seems that frozen modules are being used, which may')
590
- report('make the debugger miss breakpoints. Please pass -Xfrozen_modules=off')
591
- report('to python to disable frozen modules.')
592
- report('Note: Debugging will proceed. Set PYDEVD_DISABLE_FILE_VALIDATION=1 to disable this validation.')
593
+ report("Debugger warning: It seems that frozen modules are being used, which may")
594
+ report("make the debugger miss breakpoints. Please pass -Xfrozen_modules=off")
595
+ report("to python to disable frozen modules.")
596
+ report("Note: Debugging will proceed. Set PYDEVD_DISABLE_FILE_VALIDATION=1 to disable this validation.")
593
597
 
594
598
  elif not os.path.isabs(code.co_filename):
595
- report('Debugger warning: The os.path.realpath.__code__.co_filename (%s)', code.co_filename)
596
- report('is not absolute, which may make the debugger miss breakpoints.')
597
- report('Note: Debugging will proceed. Set PYDEVD_DISABLE_FILE_VALIDATION=1 to disable this validation.')
599
+ report("Debugger warning: The os.path.realpath.__code__.co_filename (%s)", code.co_filename)
600
+ report("is not absolute, which may make the debugger miss breakpoints.")
601
+ report("Note: Debugging will proceed. Set PYDEVD_DISABLE_FILE_VALIDATION=1 to disable this validation.")
598
602
 
599
603
  elif not exists(code.co_filename): # Note: checks for files inside .zip containers.
600
- report('Debugger warning: It seems the debugger cannot find os.path.realpath.__code__.co_filename (%s).', code.co_filename)
601
- report('This may make the debugger miss breakpoints in the standard library.')
602
- report('Note: Debugging will proceed. Set PYDEVD_DISABLE_FILE_VALIDATION=1 to disable this validation.')
604
+ report("Debugger warning: It seems the debugger cannot find os.path.realpath.__code__.co_filename (%s).", code.co_filename)
605
+ report("This may make the debugger miss breakpoints in the standard library.")
606
+ report("Note: Debugging will proceed. Set PYDEVD_DISABLE_FILE_VALIDATION=1 to disable this validation.")
603
607
  except:
604
608
  # Don't fail if there's something not correct here -- but at least print it to the user so that we can correct that
605
609
  pydev_log.exception()
@@ -641,14 +645,14 @@ map_file_to_server = _original_map_file_to_server
641
645
 
642
646
  def _fix_path(path, sep, add_end_sep=False):
643
647
  if add_end_sep:
644
- if not path.endswith('/') and not path.endswith('\\'):
645
- path += '/'
648
+ if not path.endswith("/") and not path.endswith("\\"):
649
+ path += "/"
646
650
  else:
647
- if path.endswith('/') or path.endswith('\\'):
651
+ if path.endswith("/") or path.endswith("\\"):
648
652
  path = path[:-1]
649
653
 
650
- if sep != '/':
651
- path = path.replace('/', sep)
654
+ if sep != "/":
655
+ path = path.replace("/", sep)
652
656
  return path
653
657
 
654
658
 
@@ -666,12 +670,12 @@ def get_client_filename_source_reference(client_filename):
666
670
 
667
671
 
668
672
  def get_server_filename_from_source_reference(source_reference):
669
- return _source_reference_to_server_filename.get(source_reference, '')
673
+ return _source_reference_to_server_filename.get(source_reference, "")
670
674
 
671
675
 
672
676
  def create_source_reference_for_linecache(server_filename):
673
677
  source_reference = _next_source_reference()
674
- pydev_log.debug('Created linecache id source reference: %s for server filename: %s', source_reference, server_filename)
678
+ pydev_log.debug("Created linecache id source reference: %s for server filename: %s", source_reference, server_filename)
675
679
  _line_cache_source_reference_to_server_filename[source_reference] = server_filename
676
680
  return source_reference
677
681
 
@@ -682,7 +686,7 @@ def get_source_reference_filename_from_linecache(source_reference):
682
686
 
683
687
  def create_source_reference_for_frame_id(frame_id, original_filename):
684
688
  source_reference = _next_source_reference()
685
- pydev_log.debug('Created frame id source reference: %s for frame id: %s (%s)', source_reference, frame_id, original_filename)
689
+ pydev_log.debug("Created frame id source reference: %s for frame id: %s (%s)", source_reference, frame_id, original_filename)
686
690
  _source_reference_to_frame_id[source_reference] = frame_id
687
691
  return source_reference
688
692
 
@@ -691,7 +695,7 @@ def get_frame_id_from_source_reference(source_reference):
691
695
  return _source_reference_to_frame_id.get(source_reference)
692
696
 
693
697
 
694
- _global_resolve_symlinks = is_true_in_env('PYDEVD_RESOLVE_SYMLINKS')
698
+ _global_resolve_symlinks = is_true_in_env("PYDEVD_RESOLVE_SYMLINKS")
695
699
 
696
700
 
697
701
  def set_resolve_symlinks(resolve_symlinks):
@@ -700,7 +704,7 @@ def set_resolve_symlinks(resolve_symlinks):
700
704
 
701
705
 
702
706
  def setup_client_server_paths(paths):
703
- '''paths is the same format as PATHS_FROM_ECLIPSE_TO_PYTHON'''
707
+ """paths is the same format as PATHS_FROM_ECLIPSE_TO_PYTHON"""
704
708
 
705
709
  global map_file_to_client
706
710
  global map_file_to_server
@@ -714,8 +718,8 @@ def setup_client_server_paths(paths):
714
718
  _next_source_reference = partial(next, itertools.count(1))
715
719
 
716
720
  # Work on the client and server slashes.
717
- python_sep = '\\' if IS_WINDOWS else '/'
718
- eclipse_sep = '\\' if _ide_os == 'WINDOWS' else '/'
721
+ python_sep = "\\" if IS_WINDOWS else "/"
722
+ eclipse_sep = "\\" if _ide_os == "WINDOWS" else "/"
719
723
 
720
724
  norm_filename_to_server_container = {}
721
725
  norm_filename_to_client_container = {}
@@ -729,7 +733,7 @@ def setup_client_server_paths(paths):
729
733
  # Apply normcase to the existing paths to follow the os preferences.
730
734
 
731
735
  for i, (path0, path1) in enumerate(paths):
732
- force_only_slash = path0.endswith(('/', '\\')) and path1.endswith(('/', '\\'))
736
+ force_only_slash = path0.endswith(("/", "\\")) and path1.endswith(("/", "\\"))
733
737
 
734
738
  if not force_only_slash:
735
739
  path0 = _fix_path(path0, eclipse_sep, False)
@@ -771,10 +775,10 @@ def setup_client_server_paths(paths):
771
775
  if translated_normalized.startswith(eclipse_prefix):
772
776
  found_translation = True
773
777
  if DEBUG_CLIENT_SERVER_TRANSLATION:
774
- pydev_log.critical('pydev debugger: replacing to server: %s', filename)
775
- translated = server_prefix + filename[len(eclipse_prefix):]
778
+ pydev_log.critical("pydev debugger: replacing to server: %s", filename)
779
+ translated = server_prefix + filename[len(eclipse_prefix) :]
776
780
  if DEBUG_CLIENT_SERVER_TRANSLATION:
777
- pydev_log.critical('pydev debugger: sent to server: %s - matched prefix: %s', translated, eclipse_prefix)
781
+ pydev_log.critical("pydev debugger: sent to server: %s - matched prefix: %s", translated, eclipse_prefix)
778
782
  break
779
783
  else:
780
784
  found_translation = False
@@ -789,11 +793,14 @@ def setup_client_server_paths(paths):
789
793
  translated = absolute_path(translated)
790
794
  else:
791
795
  if not os_path_exists(translated):
792
- if not translated.startswith('<'):
796
+ if not translated.startswith("<"):
793
797
  # This is a configuration error, so, write it always so
794
798
  # that the user can fix it.
795
- error_once('pydev debugger: unable to find translation for: "%s" in [%s] (please revise your path mappings).\n',
796
- filename, ', '.join(['"%s"' % (x[0],) for x in paths_from_eclipse_to_python]))
799
+ error_once(
800
+ 'pydev debugger: unable to find translation for: "%s" in [%s] (please revise your path mappings).\n',
801
+ filename,
802
+ ", ".join(['"%s"' % (x[0],) for x in paths_from_eclipse_to_python]),
803
+ )
797
804
  else:
798
805
  # It's possible that we had some round trip (say, we sent /usr/lib and received
799
806
  # it back, so, having no translation is ok too).
@@ -820,25 +827,28 @@ def setup_client_server_paths(paths):
820
827
  if translated_normalized.lower() != translated_proper_case.lower():
821
828
  if DEBUG_CLIENT_SERVER_TRANSLATION:
822
829
  pydev_log.critical(
823
- 'pydev debugger: translated_normalized changed path (from: %s to %s)',
824
- translated_proper_case, translated_normalized)
830
+ "pydev debugger: translated_normalized changed path (from: %s to %s)", translated_proper_case, translated_normalized
831
+ )
825
832
 
826
833
  for i, (eclipse_prefix, python_prefix) in enumerate(paths_from_eclipse_to_python):
827
834
  if translated_normalized.startswith(python_prefix):
828
835
  if DEBUG_CLIENT_SERVER_TRANSLATION:
829
- pydev_log.critical('pydev debugger: replacing to client: %s', translated_normalized)
836
+ pydev_log.critical("pydev debugger: replacing to client: %s", translated_normalized)
830
837
 
831
838
  # Note: use the non-normalized version.
832
839
  eclipse_prefix = initial_paths[i][0]
833
- translated = eclipse_prefix + translated_proper_case[len(python_prefix):]
840
+ translated = eclipse_prefix + translated_proper_case[len(python_prefix) :]
834
841
  if DEBUG_CLIENT_SERVER_TRANSLATION:
835
- pydev_log.critical('pydev debugger: sent to client: %s - matched prefix: %s', translated, python_prefix)
842
+ pydev_log.critical("pydev debugger: sent to client: %s - matched prefix: %s", translated, python_prefix)
836
843
  path_mapping_applied = True
837
844
  break
838
845
  else:
839
846
  if DEBUG_CLIENT_SERVER_TRANSLATION:
840
- pydev_log.critical('pydev debugger: to client: unable to find matching prefix for: %s in %s',
841
- translated_normalized, [x[1] for x in paths_from_eclipse_to_python])
847
+ pydev_log.critical(
848
+ "pydev debugger: to client: unable to find matching prefix for: %s in %s",
849
+ translated_normalized,
850
+ [x[1] for x in paths_from_eclipse_to_python],
851
+ )
842
852
  translated = translated_proper_case
843
853
 
844
854
  if eclipse_sep != python_sep:
@@ -855,7 +865,7 @@ def setup_client_server_paths(paths):
855
865
  source_reference = 0
856
866
  else:
857
867
  source_reference = _next_source_reference()
858
- pydev_log.debug('Created source reference: %s for untranslated path: %s', source_reference, filename)
868
+ pydev_log.debug("Created source reference: %s for untranslated path: %s", source_reference, filename)
859
869
 
860
870
  _client_filename_in_utf8_to_source_reference[translated] = source_reference
861
871
  _source_reference_to_server_filename[source_reference] = filename
@@ -870,8 +880,7 @@ setup_client_server_paths(PATHS_FROM_ECLIPSE_TO_PYTHON)
870
880
 
871
881
 
872
882
  # For given file f returns tuple of its absolute path, real path and base name
873
- def get_abs_path_real_path_and_base_from_file(
874
- filename, NORM_PATHS_AND_BASE_CONTAINER=NORM_PATHS_AND_BASE_CONTAINER):
883
+ def get_abs_path_real_path_and_base_from_file(filename, NORM_PATHS_AND_BASE_CONTAINER=NORM_PATHS_AND_BASE_CONTAINER):
875
884
  try:
876
885
  return NORM_PATHS_AND_BASE_CONTAINER[filename]
877
886
  except:
@@ -879,20 +888,20 @@ def get_abs_path_real_path_and_base_from_file(
879
888
  if not f:
880
889
  # i.e.: it's possible that the user compiled code with an empty string (consider
881
890
  # it as <string> in this case).
882
- f = '<string>'
891
+ f = "<string>"
883
892
 
884
- if f.startswith('<'):
893
+ if f.startswith("<"):
885
894
  return f, normcase(f), f
886
895
 
887
896
  if _abs_and_canonical_path is None: # Interpreter shutdown
888
- i = max(f.rfind('/'), f.rfind('\\'))
889
- return (f, f, f[i + 1:])
897
+ i = max(f.rfind("/"), f.rfind("\\"))
898
+ return (f, f, f[i + 1 :])
890
899
 
891
900
  if f is not None:
892
- if f.endswith('.pyc'):
901
+ if f.endswith(".pyc"):
893
902
  f = f[:-1]
894
- elif f.endswith('$py.class'):
895
- f = f[:-len('$py.class')] + '.py'
903
+ elif f.endswith("$py.class"):
904
+ f = f[: -len("$py.class")] + ".py"
896
905
 
897
906
  abs_path, canonical_normalized_filename = _abs_and_canonical_path(f)
898
907
 
@@ -900,8 +909,8 @@ def get_abs_path_real_path_and_base_from_file(
900
909
  base = os_path_basename(canonical_normalized_filename)
901
910
  except AttributeError:
902
911
  # Error during shutdown.
903
- i = max(f.rfind('/'), f.rfind('\\'))
904
- base = f[i + 1:]
912
+ i = max(f.rfind("/"), f.rfind("\\"))
913
+ base = f[i + 1 :]
905
914
  ret = abs_path, canonical_normalized_filename, base
906
915
  NORM_PATHS_AND_BASE_CONTAINER[filename] = ret
907
916
  return ret
@@ -914,18 +923,18 @@ def get_abs_path_real_path_and_base_from_frame(frame, NORM_PATHS_AND_BASE_CONTAI
914
923
  # This one is just internal (so, does not need any kind of client-server translation)
915
924
  f = frame.f_code.co_filename
916
925
 
917
- if f is not None and f.startswith (('build/bdist.', 'build\\bdist.')):
926
+ if f is not None and f.startswith(("build/bdist.", "build\\bdist.")):
918
927
  # files from eggs in Python 2.7 have paths like build/bdist.linux-x86_64/egg/<path-inside-egg>
919
- f = frame.f_globals['__file__']
928
+ f = frame.f_globals["__file__"]
920
929
 
921
930
  if get_abs_path_real_path_and_base_from_file is None:
922
931
  # Interpreter shutdown
923
932
  if not f:
924
933
  # i.e.: it's possible that the user compiled code with an empty string (consider
925
934
  # it as <string> in this case).
926
- f = '<string>'
927
- i = max(f.rfind('/'), f.rfind('\\'))
928
- return f, f, f[i + 1:]
935
+ f = "<string>"
936
+ i = max(f.rfind("/"), f.rfind("\\"))
937
+ return f, f, f[i + 1 :]
929
938
 
930
939
  ret = get_abs_path_real_path_and_base_from_file(f)
931
940
  # Also cache based on the frame.f_code.co_filename (if we had it inside build/bdist it can make a difference).
@@ -935,6 +944,7 @@ def get_abs_path_real_path_and_base_from_frame(frame, NORM_PATHS_AND_BASE_CONTAI
935
944
 
936
945
  def get_fullname(mod_name):
937
946
  import pkgutil
947
+
938
948
  try:
939
949
  loader = pkgutil.get_loader(mod_name)
940
950
  except:
@@ -949,8 +959,19 @@ def get_fullname(mod_name):
949
959
 
950
960
  def get_package_dir(mod_name):
951
961
  for path in sys.path:
952
- mod_path = join(path, mod_name.replace('.', '/'))
962
+ mod_path = join(path, mod_name.replace(".", "/"))
953
963
  if os.path.isdir(mod_path):
954
964
  return mod_path
955
965
  return None
956
966
 
967
+ def contains_dir(path, dir_name):
968
+ try:
969
+ while path:
970
+ path, tail = os.path.split(path)
971
+ if tail == dir_name:
972
+ return True
973
+ if tail is None and path == dir_name:
974
+ return True
975
+ except:
976
+ pass
977
+ return False