pydevd-pycharm 242.18071.12__tar.gz → 242.20224.89__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of pydevd-pycharm might be problematic. Click here for more details.

Files changed (292) hide show
  1. pydevd-pycharm-242.20224.89/PKG-INFO +77 -0
  2. pydevd-pycharm-242.20224.89/VERSION +1 -0
  3. pydevd-pycharm-242.20224.89/_pydev_bundle/pydev_is_thread_alive.py +32 -0
  4. {pydevd-pycharm-242.18071.12 → pydevd-pycharm-242.20224.89}/_pydevd_bundle/pydevd_comm.py +4 -7
  5. {pydevd-pycharm-242.18071.12 → pydevd-pycharm-242.20224.89}/_pydevd_bundle/pydevd_cython_darwin_27_64.so +0 -0
  6. {pydevd-pycharm-242.18071.12 → pydevd-pycharm-242.20224.89}/_pydevd_bundle/pydevd_cython_darwin_310_64.cpython-310-darwin.so +0 -0
  7. {pydevd-pycharm-242.18071.12 → pydevd-pycharm-242.20224.89}/_pydevd_bundle/pydevd_cython_darwin_311_64.cpython-311-darwin.so +0 -0
  8. {pydevd-pycharm-242.18071.12 → pydevd-pycharm-242.20224.89}/_pydevd_bundle/pydevd_cython_darwin_312_64.cpython-312-darwin.so +0 -0
  9. {pydevd-pycharm-242.18071.12 → pydevd-pycharm-242.20224.89}/_pydevd_bundle/pydevd_cython_darwin_36_64.cpython-36m-darwin.so +0 -0
  10. {pydevd-pycharm-242.18071.12 → pydevd-pycharm-242.20224.89}/_pydevd_bundle/pydevd_cython_darwin_37_64.cpython-37m-darwin.so +0 -0
  11. {pydevd-pycharm-242.18071.12 → pydevd-pycharm-242.20224.89}/_pydevd_bundle/pydevd_cython_darwin_38_64.cpython-38-darwin.so +0 -0
  12. {pydevd-pycharm-242.18071.12 → pydevd-pycharm-242.20224.89}/_pydevd_bundle/pydevd_cython_darwin_39_64.cpython-39-darwin.so +0 -0
  13. {pydevd-pycharm-242.18071.12 → pydevd-pycharm-242.20224.89}/_pydevd_bundle/pydevd_frame_type_handler.py +44 -22
  14. {pydevd-pycharm-242.18071.12 → pydevd-pycharm-242.20224.89}/_pydevd_bundle/pydevd_pep_669_tracing_cython.cpython-312-darwin.so +0 -0
  15. {pydevd-pycharm-242.18071.12 → pydevd-pycharm-242.20224.89}/_pydevd_bundle/pydevd_tables.py +5 -4
  16. {pydevd-pycharm-242.18071.12 → pydevd-pycharm-242.20224.89}/_pydevd_bundle/pydevd_thrift.py +26 -6
  17. {pydevd-pycharm-242.18071.12 → pydevd-pycharm-242.20224.89}/_pydevd_bundle/pydevd_utils.py +19 -0
  18. {pydevd-pycharm-242.18071.12 → pydevd-pycharm-242.20224.89}/_pydevd_bundle/pydevd_vars.py +32 -6
  19. {pydevd-pycharm-242.18071.12 → pydevd-pycharm-242.20224.89}/_pydevd_bundle/pydevd_xml.py +12 -8
  20. {pydevd-pycharm-242.18071.12 → pydevd-pycharm-242.20224.89}/_pydevd_frame_eval/pydevd_frame_evaluator_darwin_310_64.cpython-310-darwin.so +0 -0
  21. {pydevd-pycharm-242.18071.12 → pydevd-pycharm-242.20224.89}/_pydevd_frame_eval/pydevd_frame_evaluator_darwin_36_64.cpython-36m-darwin.so +0 -0
  22. {pydevd-pycharm-242.18071.12 → pydevd-pycharm-242.20224.89}/_pydevd_frame_eval/pydevd_frame_evaluator_darwin_37_64.cpython-37m-darwin.so +0 -0
  23. {pydevd-pycharm-242.18071.12 → pydevd-pycharm-242.20224.89}/_pydevd_frame_eval/pydevd_frame_evaluator_darwin_38_64.cpython-38-darwin.so +0 -0
  24. {pydevd-pycharm-242.18071.12 → pydevd-pycharm-242.20224.89}/_pydevd_frame_eval/pydevd_frame_evaluator_darwin_39_64.cpython-39-darwin.so +0 -0
  25. {pydevd-pycharm-242.18071.12 → pydevd-pycharm-242.20224.89}/pydev_ipython/matplotlibtools.py +19 -6
  26. {pydevd-pycharm-242.18071.12 → pydevd-pycharm-242.20224.89}/pydevd.py +7 -2
  27. {pydevd-pycharm-242.18071.12 → pydevd-pycharm-242.20224.89}/pydevd_attach_to_process/attach.dylib +0 -0
  28. pydevd-pycharm-242.20224.89/pydevd_pycharm.egg-info/PKG-INFO +77 -0
  29. {pydevd-pycharm-242.18071.12 → pydevd-pycharm-242.20224.89}/pydevd_pycharm.py +5 -0
  30. pydevd-pycharm-242.18071.12/PKG-INFO +0 -75
  31. pydevd-pycharm-242.18071.12/VERSION +0 -1
  32. pydevd-pycharm-242.18071.12/_pydev_bundle/pydev_is_thread_alive.py +0 -20
  33. pydevd-pycharm-242.18071.12/pydevd_pycharm.egg-info/PKG-INFO +0 -75
  34. {pydevd-pycharm-242.18071.12 → pydevd-pycharm-242.20224.89}/LICENSE +0 -0
  35. {pydevd-pycharm-242.18071.12 → pydevd-pycharm-242.20224.89}/MANIFEST.in +0 -0
  36. {pydevd-pycharm-242.18071.12 → pydevd-pycharm-242.20224.89}/README.rst +0 -0
  37. {pydevd-pycharm-242.18071.12 → pydevd-pycharm-242.20224.89}/_pydev_bundle/__init__.py +0 -0
  38. {pydevd-pycharm-242.18071.12 → pydevd-pycharm-242.20224.89}/_pydev_bundle/_pydev_calltip_util.py +0 -0
  39. {pydevd-pycharm-242.18071.12 → pydevd-pycharm-242.20224.89}/_pydev_bundle/_pydev_completer.py +0 -0
  40. {pydevd-pycharm-242.18071.12 → pydevd-pycharm-242.20224.89}/_pydev_bundle/_pydev_filesystem_encoding.py +0 -0
  41. {pydevd-pycharm-242.18071.12 → pydevd-pycharm-242.20224.89}/_pydev_bundle/_pydev_getopt.py +0 -0
  42. {pydevd-pycharm-242.18071.12 → pydevd-pycharm-242.20224.89}/_pydev_bundle/_pydev_imports_tipper.py +0 -0
  43. {pydevd-pycharm-242.18071.12 → pydevd-pycharm-242.20224.89}/_pydev_bundle/_pydev_jy_imports_tipper.py +0 -0
  44. {pydevd-pycharm-242.18071.12 → pydevd-pycharm-242.20224.89}/_pydev_bundle/_pydev_log.py +0 -0
  45. {pydevd-pycharm-242.18071.12 → pydevd-pycharm-242.20224.89}/_pydev_bundle/_pydev_tipper_common.py +0 -0
  46. {pydevd-pycharm-242.18071.12 → pydevd-pycharm-242.20224.89}/_pydev_bundle/fix_getpass.py +0 -0
  47. {pydevd-pycharm-242.18071.12 → pydevd-pycharm-242.20224.89}/_pydev_bundle/pydev_code_executor.py +0 -0
  48. {pydevd-pycharm-242.18071.12 → pydevd-pycharm-242.20224.89}/_pydev_bundle/pydev_console_commands.py +0 -0
  49. {pydevd-pycharm-242.18071.12 → pydevd-pycharm-242.20224.89}/_pydev_bundle/pydev_console_types.py +0 -0
  50. {pydevd-pycharm-242.18071.12 → pydevd-pycharm-242.20224.89}/_pydev_bundle/pydev_console_utils.py +0 -0
  51. {pydevd-pycharm-242.18071.12 → pydevd-pycharm-242.20224.89}/_pydev_bundle/pydev_import_hook.py +0 -0
  52. {pydevd-pycharm-242.18071.12 → pydevd-pycharm-242.20224.89}/_pydev_bundle/pydev_imports.py +0 -0
  53. {pydevd-pycharm-242.18071.12 → pydevd-pycharm-242.20224.89}/_pydev_bundle/pydev_ipython_code_executor.py +0 -0
  54. {pydevd-pycharm-242.18071.12 → pydevd-pycharm-242.20224.89}/_pydev_bundle/pydev_ipython_completer.py +0 -0
  55. {pydevd-pycharm-242.18071.12 → pydevd-pycharm-242.20224.89}/_pydev_bundle/pydev_ipython_console.py +0 -0
  56. {pydevd-pycharm-242.18071.12 → pydevd-pycharm-242.20224.89}/_pydev_bundle/pydev_ipython_console_011.py +0 -0
  57. {pydevd-pycharm-242.18071.12 → pydevd-pycharm-242.20224.89}/_pydev_bundle/pydev_ipython_rich_output.py +0 -0
  58. {pydevd-pycharm-242.18071.12 → pydevd-pycharm-242.20224.89}/_pydev_bundle/pydev_localhost.py +0 -0
  59. {pydevd-pycharm-242.18071.12 → pydevd-pycharm-242.20224.89}/_pydev_bundle/pydev_log.py +0 -0
  60. {pydevd-pycharm-242.18071.12 → pydevd-pycharm-242.20224.89}/_pydev_bundle/pydev_monkey.py +0 -0
  61. {pydevd-pycharm-242.18071.12 → pydevd-pycharm-242.20224.89}/_pydev_bundle/pydev_monkey_qt.py +0 -0
  62. {pydevd-pycharm-242.18071.12 → pydevd-pycharm-242.20224.89}/_pydev_bundle/pydev_override.py +0 -0
  63. {pydevd-pycharm-242.18071.12 → pydevd-pycharm-242.20224.89}/_pydev_bundle/pydev_stdin.py +0 -0
  64. {pydevd-pycharm-242.18071.12 → pydevd-pycharm-242.20224.89}/_pydev_bundle/pydev_umd.py +0 -0
  65. {pydevd-pycharm-242.18071.12 → pydevd-pycharm-242.20224.89}/_pydev_bundle/pydev_versioncheck.py +0 -0
  66. {pydevd-pycharm-242.18071.12 → pydevd-pycharm-242.20224.89}/_pydev_imps/__init__.py +0 -0
  67. {pydevd-pycharm-242.18071.12 → pydevd-pycharm-242.20224.89}/_pydev_imps/_pydev_BaseHTTPServer.py +0 -0
  68. {pydevd-pycharm-242.18071.12 → pydevd-pycharm-242.20224.89}/_pydev_imps/_pydev_SimpleXMLRPCServer.py +0 -0
  69. {pydevd-pycharm-242.18071.12 → pydevd-pycharm-242.20224.89}/_pydev_imps/_pydev_SocketServer.py +0 -0
  70. {pydevd-pycharm-242.18071.12 → pydevd-pycharm-242.20224.89}/_pydev_imps/_pydev_execfile.py +0 -0
  71. {pydevd-pycharm-242.18071.12 → pydevd-pycharm-242.20224.89}/_pydev_imps/_pydev_pkgutil_old.py +0 -0
  72. {pydevd-pycharm-242.18071.12 → pydevd-pycharm-242.20224.89}/_pydev_imps/_pydev_saved_modules.py +0 -0
  73. {pydevd-pycharm-242.18071.12 → pydevd-pycharm-242.20224.89}/_pydev_imps/_pydev_sys_patch.py +0 -0
  74. {pydevd-pycharm-242.18071.12 → pydevd-pycharm-242.20224.89}/_pydev_imps/_pydev_xmlrpclib.py +0 -0
  75. {pydevd-pycharm-242.18071.12 → pydevd-pycharm-242.20224.89}/_pydev_runfiles/__init__.py +0 -0
  76. {pydevd-pycharm-242.18071.12 → pydevd-pycharm-242.20224.89}/_pydev_runfiles/pydev_runfiles.py +0 -0
  77. {pydevd-pycharm-242.18071.12 → pydevd-pycharm-242.20224.89}/_pydev_runfiles/pydev_runfiles_coverage.py +0 -0
  78. {pydevd-pycharm-242.18071.12 → pydevd-pycharm-242.20224.89}/_pydev_runfiles/pydev_runfiles_nose.py +0 -0
  79. {pydevd-pycharm-242.18071.12 → pydevd-pycharm-242.20224.89}/_pydev_runfiles/pydev_runfiles_parallel.py +0 -0
  80. {pydevd-pycharm-242.18071.12 → pydevd-pycharm-242.20224.89}/_pydev_runfiles/pydev_runfiles_parallel_client.py +0 -0
  81. {pydevd-pycharm-242.18071.12 → pydevd-pycharm-242.20224.89}/_pydev_runfiles/pydev_runfiles_pytest2.py +0 -0
  82. {pydevd-pycharm-242.18071.12 → pydevd-pycharm-242.20224.89}/_pydev_runfiles/pydev_runfiles_unittest.py +0 -0
  83. {pydevd-pycharm-242.18071.12 → pydevd-pycharm-242.20224.89}/_pydev_runfiles/pydev_runfiles_xml_rpc.py +0 -0
  84. {pydevd-pycharm-242.18071.12 → pydevd-pycharm-242.20224.89}/_pydevd_bundle/__init__.py +0 -0
  85. {pydevd-pycharm-242.18071.12 → pydevd-pycharm-242.20224.89}/_pydevd_bundle/pydevconsole_code_for_ironpython.py +0 -0
  86. {pydevd-pycharm-242.18071.12 → pydevd-pycharm-242.20224.89}/_pydevd_bundle/pydevd_additional_thread_info.py +0 -0
  87. {pydevd-pycharm-242.18071.12 → pydevd-pycharm-242.20224.89}/_pydevd_bundle/pydevd_additional_thread_info_regular.py +0 -0
  88. {pydevd-pycharm-242.18071.12 → pydevd-pycharm-242.20224.89}/_pydevd_bundle/pydevd_asyncio_provider.py +0 -0
  89. {pydevd-pycharm-242.18071.12 → pydevd-pycharm-242.20224.89}/_pydevd_bundle/pydevd_breakpointhook.py +0 -0
  90. {pydevd-pycharm-242.18071.12 → pydevd-pycharm-242.20224.89}/_pydevd_bundle/pydevd_breakpoints.py +0 -0
  91. {pydevd-pycharm-242.18071.12 → pydevd-pycharm-242.20224.89}/_pydevd_bundle/pydevd_bytecode_utils.py +0 -0
  92. {pydevd-pycharm-242.18071.12 → pydevd-pycharm-242.20224.89}/_pydevd_bundle/pydevd_collect_try_except_info.py +0 -0
  93. {pydevd-pycharm-242.18071.12 → pydevd-pycharm-242.20224.89}/_pydevd_bundle/pydevd_comm_constants.py +0 -0
  94. {pydevd-pycharm-242.18071.12 → pydevd-pycharm-242.20224.89}/_pydevd_bundle/pydevd_command_line_handling.py +0 -0
  95. {pydevd-pycharm-242.18071.12 → pydevd-pycharm-242.20224.89}/_pydevd_bundle/pydevd_console.py +0 -0
  96. {pydevd-pycharm-242.18071.12 → pydevd-pycharm-242.20224.89}/_pydevd_bundle/pydevd_console_integration.py +0 -0
  97. {pydevd-pycharm-242.18071.12 → pydevd-pycharm-242.20224.89}/_pydevd_bundle/pydevd_console_output.py +0 -0
  98. {pydevd-pycharm-242.18071.12 → pydevd-pycharm-242.20224.89}/_pydevd_bundle/pydevd_console_pytest.py +0 -0
  99. {pydevd-pycharm-242.18071.12 → pydevd-pycharm-242.20224.89}/_pydevd_bundle/pydevd_constants.py +0 -0
  100. {pydevd-pycharm-242.18071.12 → pydevd-pycharm-242.20224.89}/_pydevd_bundle/pydevd_custom_frames.py +0 -0
  101. {pydevd-pycharm-242.18071.12 → pydevd-pycharm-242.20224.89}/_pydevd_bundle/pydevd_cython.c +0 -0
  102. {pydevd-pycharm-242.18071.12 → pydevd-pycharm-242.20224.89}/_pydevd_bundle/pydevd_cython.pyx +0 -0
  103. {pydevd-pycharm-242.18071.12 → pydevd-pycharm-242.20224.89}/_pydevd_bundle/pydevd_cython_win32_27_32.pyd +0 -0
  104. {pydevd-pycharm-242.18071.12 → pydevd-pycharm-242.20224.89}/_pydevd_bundle/pydevd_cython_win32_27_64.pyd +0 -0
  105. {pydevd-pycharm-242.18071.12 → pydevd-pycharm-242.20224.89}/_pydevd_bundle/pydevd_cython_win32_310_32.cp310-win32.pyd +0 -0
  106. {pydevd-pycharm-242.18071.12 → pydevd-pycharm-242.20224.89}/_pydevd_bundle/pydevd_cython_win32_310_64.cp310-win_amd64.pyd +0 -0
  107. {pydevd-pycharm-242.18071.12 → pydevd-pycharm-242.20224.89}/_pydevd_bundle/pydevd_cython_win32_311_32.cp311-win32.pyd +0 -0
  108. {pydevd-pycharm-242.18071.12 → pydevd-pycharm-242.20224.89}/_pydevd_bundle/pydevd_cython_win32_311_64.cp311-win_amd64.pyd +0 -0
  109. {pydevd-pycharm-242.18071.12 → pydevd-pycharm-242.20224.89}/_pydevd_bundle/pydevd_cython_win32_312_32.cp312-win32.pyd +0 -0
  110. {pydevd-pycharm-242.18071.12 → pydevd-pycharm-242.20224.89}/_pydevd_bundle/pydevd_cython_win32_312_64.cp312-win_amd64.pyd +0 -0
  111. {pydevd-pycharm-242.18071.12 → pydevd-pycharm-242.20224.89}/_pydevd_bundle/pydevd_cython_win32_36_32.cp36-win32.pyd +0 -0
  112. {pydevd-pycharm-242.18071.12 → pydevd-pycharm-242.20224.89}/_pydevd_bundle/pydevd_cython_win32_36_64.cp36-win_amd64.pyd +0 -0
  113. {pydevd-pycharm-242.18071.12 → pydevd-pycharm-242.20224.89}/_pydevd_bundle/pydevd_cython_win32_37_32.cp37-win32.pyd +0 -0
  114. {pydevd-pycharm-242.18071.12 → pydevd-pycharm-242.20224.89}/_pydevd_bundle/pydevd_cython_win32_37_64.cp37-win_amd64.pyd +0 -0
  115. {pydevd-pycharm-242.18071.12 → pydevd-pycharm-242.20224.89}/_pydevd_bundle/pydevd_cython_win32_38_32.cp38-win32.pyd +0 -0
  116. {pydevd-pycharm-242.18071.12 → pydevd-pycharm-242.20224.89}/_pydevd_bundle/pydevd_cython_win32_38_64.cp38-win_amd64.pyd +0 -0
  117. {pydevd-pycharm-242.18071.12 → pydevd-pycharm-242.20224.89}/_pydevd_bundle/pydevd_cython_win32_39_32.cp39-win32.pyd +0 -0
  118. {pydevd-pycharm-242.18071.12 → pydevd-pycharm-242.20224.89}/_pydevd_bundle/pydevd_cython_win32_39_64.cp39-win_amd64.pyd +0 -0
  119. {pydevd-pycharm-242.18071.12 → pydevd-pycharm-242.20224.89}/_pydevd_bundle/pydevd_cython_wrapper.py +0 -0
  120. {pydevd-pycharm-242.18071.12 → pydevd-pycharm-242.20224.89}/_pydevd_bundle/pydevd_dont_trace.py +0 -0
  121. {pydevd-pycharm-242.18071.12 → pydevd-pycharm-242.20224.89}/_pydevd_bundle/pydevd_dont_trace_files.py +0 -0
  122. {pydevd-pycharm-242.18071.12 → pydevd-pycharm-242.20224.89}/_pydevd_bundle/pydevd_exec.py +0 -0
  123. {pydevd-pycharm-242.18071.12 → pydevd-pycharm-242.20224.89}/_pydevd_bundle/pydevd_exec2.py +0 -0
  124. {pydevd-pycharm-242.18071.12 → pydevd-pycharm-242.20224.89}/_pydevd_bundle/pydevd_extension_api.py +0 -0
  125. {pydevd-pycharm-242.18071.12 → pydevd-pycharm-242.20224.89}/_pydevd_bundle/pydevd_extension_utils.py +0 -0
  126. {pydevd-pycharm-242.18071.12 → pydevd-pycharm-242.20224.89}/_pydevd_bundle/pydevd_frame.py +0 -0
  127. {pydevd-pycharm-242.18071.12 → pydevd-pycharm-242.20224.89}/_pydevd_bundle/pydevd_frame_utils.py +0 -0
  128. {pydevd-pycharm-242.18071.12 → pydevd-pycharm-242.20224.89}/_pydevd_bundle/pydevd_import_class.py +0 -0
  129. {pydevd-pycharm-242.18071.12 → pydevd-pycharm-242.20224.89}/_pydevd_bundle/pydevd_io.py +0 -0
  130. {pydevd-pycharm-242.18071.12 → pydevd-pycharm-242.20224.89}/_pydevd_bundle/pydevd_ipython_console_output.py +0 -0
  131. {pydevd-pycharm-242.18071.12 → pydevd-pycharm-242.20224.89}/_pydevd_bundle/pydevd_kill_all_pydevd_threads.py +0 -0
  132. {pydevd-pycharm-242.18071.12 → pydevd-pycharm-242.20224.89}/_pydevd_bundle/pydevd_pep_669_tracing.py +0 -0
  133. {pydevd-pycharm-242.18071.12 → pydevd-pycharm-242.20224.89}/_pydevd_bundle/pydevd_pep_669_tracing_cython.c +0 -0
  134. {pydevd-pycharm-242.18071.12 → pydevd-pycharm-242.20224.89}/_pydevd_bundle/pydevd_pep_669_tracing_cython.cp312-win32.pyd +0 -0
  135. {pydevd-pycharm-242.18071.12 → pydevd-pycharm-242.20224.89}/_pydevd_bundle/pydevd_pep_669_tracing_cython.cp312-win_amd64.pyd +0 -0
  136. {pydevd-pycharm-242.18071.12 → pydevd-pycharm-242.20224.89}/_pydevd_bundle/pydevd_pep_669_tracing_cython.pyx +0 -0
  137. {pydevd-pycharm-242.18071.12 → pydevd-pycharm-242.20224.89}/_pydevd_bundle/pydevd_pep_669_tracing_wrapper.py +0 -0
  138. {pydevd-pycharm-242.18071.12 → pydevd-pycharm-242.20224.89}/_pydevd_bundle/pydevd_plugin_utils.py +0 -0
  139. {pydevd-pycharm-242.18071.12 → pydevd-pycharm-242.20224.89}/_pydevd_bundle/pydevd_process_net_command.py +0 -0
  140. {pydevd-pycharm-242.18071.12 → pydevd-pycharm-242.20224.89}/_pydevd_bundle/pydevd_referrers.py +0 -0
  141. {pydevd-pycharm-242.18071.12 → pydevd-pycharm-242.20224.89}/_pydevd_bundle/pydevd_reload.py +0 -0
  142. {pydevd-pycharm-242.18071.12 → pydevd-pycharm-242.20224.89}/_pydevd_bundle/pydevd_repr_utils.py +0 -0
  143. {pydevd-pycharm-242.18071.12 → pydevd-pycharm-242.20224.89}/_pydevd_bundle/pydevd_resolver.py +0 -0
  144. {pydevd-pycharm-242.18071.12 → pydevd-pycharm-242.20224.89}/_pydevd_bundle/pydevd_save_locals.py +0 -0
  145. {pydevd-pycharm-242.18071.12 → pydevd-pycharm-242.20224.89}/_pydevd_bundle/pydevd_signature.py +0 -0
  146. {pydevd-pycharm-242.18071.12 → pydevd-pycharm-242.20224.89}/_pydevd_bundle/pydevd_stackless.py +0 -0
  147. {pydevd-pycharm-242.18071.12 → pydevd-pycharm-242.20224.89}/_pydevd_bundle/pydevd_trace_api.py +0 -0
  148. {pydevd-pycharm-242.18071.12 → pydevd-pycharm-242.20224.89}/_pydevd_bundle/pydevd_trace_dispatch.py +0 -0
  149. {pydevd-pycharm-242.18071.12 → pydevd-pycharm-242.20224.89}/_pydevd_bundle/pydevd_trace_dispatch_regular.py +0 -0
  150. {pydevd-pycharm-242.18071.12 → pydevd-pycharm-242.20224.89}/_pydevd_bundle/pydevd_traceproperty.py +0 -0
  151. {pydevd-pycharm-242.18071.12 → pydevd-pycharm-242.20224.89}/_pydevd_bundle/pydevd_user_type_renderers.py +0 -0
  152. {pydevd-pycharm-242.18071.12 → pydevd-pycharm-242.20224.89}/_pydevd_bundle/pydevd_user_type_renderers_utils.py +0 -0
  153. {pydevd-pycharm-242.18071.12 → pydevd-pycharm-242.20224.89}/_pydevd_bundle/pydevd_vm_type.py +0 -0
  154. {pydevd-pycharm-242.18071.12 → pydevd-pycharm-242.20224.89}/_pydevd_bundle/smart_step_into/__init__.py +0 -0
  155. {pydevd-pycharm-242.18071.12 → pydevd-pycharm-242.20224.89}/_pydevd_bundle/smart_step_into/pydevd_smart_step_into_27.py +0 -0
  156. {pydevd-pycharm-242.18071.12 → pydevd-pycharm-242.20224.89}/_pydevd_bundle/smart_step_into/pydevd_smart_step_into_311.py +0 -0
  157. {pydevd-pycharm-242.18071.12 → pydevd-pycharm-242.20224.89}/_pydevd_bundle/smart_step_into/pydevd_smart_step_into_36_310.py +0 -0
  158. {pydevd-pycharm-242.18071.12 → pydevd-pycharm-242.20224.89}/_pydevd_bundle/smart_step_into/pydevd_smart_step_into_util.py +0 -0
  159. {pydevd-pycharm-242.18071.12 → pydevd-pycharm-242.20224.89}/_pydevd_frame_eval/__init__.py +0 -0
  160. {pydevd-pycharm-242.18071.12 → pydevd-pycharm-242.20224.89}/_pydevd_frame_eval/pydevd_frame_eval_cython_wrapper.py +0 -0
  161. {pydevd-pycharm-242.18071.12 → pydevd-pycharm-242.20224.89}/_pydevd_frame_eval/pydevd_frame_eval_main.py +0 -0
  162. {pydevd-pycharm-242.18071.12 → pydevd-pycharm-242.20224.89}/_pydevd_frame_eval/pydevd_frame_evaluator_36_38.c +0 -0
  163. {pydevd-pycharm-242.18071.12 → pydevd-pycharm-242.20224.89}/_pydevd_frame_eval/pydevd_frame_evaluator_39_310.c +0 -0
  164. {pydevd-pycharm-242.18071.12 → pydevd-pycharm-242.20224.89}/_pydevd_frame_eval/pydevd_frame_evaluator_win32_310_32.cp310-win32.pyd +0 -0
  165. {pydevd-pycharm-242.18071.12 → pydevd-pycharm-242.20224.89}/_pydevd_frame_eval/pydevd_frame_evaluator_win32_310_64.cp310-win_amd64.pyd +0 -0
  166. {pydevd-pycharm-242.18071.12 → pydevd-pycharm-242.20224.89}/_pydevd_frame_eval/pydevd_frame_evaluator_win32_36_32.cp36-win32.pyd +0 -0
  167. {pydevd-pycharm-242.18071.12 → pydevd-pycharm-242.20224.89}/_pydevd_frame_eval/pydevd_frame_evaluator_win32_36_64.cp36-win_amd64.pyd +0 -0
  168. {pydevd-pycharm-242.18071.12 → pydevd-pycharm-242.20224.89}/_pydevd_frame_eval/pydevd_frame_evaluator_win32_37_32.cp37-win32.pyd +0 -0
  169. {pydevd-pycharm-242.18071.12 → pydevd-pycharm-242.20224.89}/_pydevd_frame_eval/pydevd_frame_evaluator_win32_37_64.cp37-win_amd64.pyd +0 -0
  170. {pydevd-pycharm-242.18071.12 → pydevd-pycharm-242.20224.89}/_pydevd_frame_eval/pydevd_frame_evaluator_win32_38_32.cp38-win32.pyd +0 -0
  171. {pydevd-pycharm-242.18071.12 → pydevd-pycharm-242.20224.89}/_pydevd_frame_eval/pydevd_frame_evaluator_win32_38_64.cp38-win_amd64.pyd +0 -0
  172. {pydevd-pycharm-242.18071.12 → pydevd-pycharm-242.20224.89}/_pydevd_frame_eval/pydevd_frame_evaluator_win32_39_32.cp39-win32.pyd +0 -0
  173. {pydevd-pycharm-242.18071.12 → pydevd-pycharm-242.20224.89}/_pydevd_frame_eval/pydevd_frame_evaluator_win32_39_64.cp39-win_amd64.pyd +0 -0
  174. {pydevd-pycharm-242.18071.12 → pydevd-pycharm-242.20224.89}/_pydevd_frame_eval/pydevd_frame_tracing.py +0 -0
  175. {pydevd-pycharm-242.18071.12 → pydevd-pycharm-242.20224.89}/_pydevd_frame_eval/pydevd_modify_bytecode.py +0 -0
  176. {pydevd-pycharm-242.18071.12 → pydevd-pycharm-242.20224.89}/build_tools/build.py +0 -0
  177. {pydevd-pycharm-242.18071.12 → pydevd-pycharm-242.20224.89}/build_tools/build_binaries_osx.py +0 -0
  178. {pydevd-pycharm-242.18071.12 → pydevd-pycharm-242.20224.89}/build_tools/build_binaries_windows.py +0 -0
  179. {pydevd-pycharm-242.18071.12 → pydevd-pycharm-242.20224.89}/build_tools/build_common.py +0 -0
  180. {pydevd-pycharm-242.18071.12 → pydevd-pycharm-242.20224.89}/build_tools/generate_code.py +0 -0
  181. {pydevd-pycharm-242.18071.12 → pydevd-pycharm-242.20224.89}/build_tools/generate_debugger_import_errors/generate_import_error.py +0 -0
  182. {pydevd-pycharm-242.18071.12 → pydevd-pycharm-242.20224.89}/build_tools/generate_debugger_import_errors/generation_utils.py +0 -0
  183. {pydevd-pycharm-242.18071.12 → pydevd-pycharm-242.20224.89}/build_tools/generate_debugger_import_errors/start_generation.py +0 -0
  184. {pydevd-pycharm-242.18071.12 → pydevd-pycharm-242.20224.89}/build_tools/msvccompiler_wrapper.py +0 -0
  185. {pydevd-pycharm-242.18071.12 → pydevd-pycharm-242.20224.89}/build_tools/names_to_rename.py +0 -0
  186. {pydevd-pycharm-242.18071.12 → pydevd-pycharm-242.20224.89}/build_tools/rename_pep8.py +0 -0
  187. {pydevd-pycharm-242.18071.12 → pydevd-pycharm-242.20224.89}/merge_pydev_pycharm.txt +0 -0
  188. {pydevd-pycharm-242.18071.12 → pydevd-pycharm-242.20224.89}/pycharm-console.rst +0 -0
  189. {pydevd-pycharm-242.18071.12 → pydevd-pycharm-242.20224.89}/pycharm-readme.rst +0 -0
  190. {pydevd-pycharm-242.18071.12 → pydevd-pycharm-242.20224.89}/pydev_app_engine_debug_startup.py +0 -0
  191. {pydevd-pycharm-242.18071.12 → pydevd-pycharm-242.20224.89}/pydev_ipython/__init__.py +0 -0
  192. {pydevd-pycharm-242.18071.12 → pydevd-pycharm-242.20224.89}/pydev_ipython/inputhook.py +0 -0
  193. {pydevd-pycharm-242.18071.12 → pydevd-pycharm-242.20224.89}/pydev_ipython/inputhookglut.py +0 -0
  194. {pydevd-pycharm-242.18071.12 → pydevd-pycharm-242.20224.89}/pydev_ipython/inputhookgtk.py +0 -0
  195. {pydevd-pycharm-242.18071.12 → pydevd-pycharm-242.20224.89}/pydev_ipython/inputhookgtk3.py +0 -0
  196. {pydevd-pycharm-242.18071.12 → pydevd-pycharm-242.20224.89}/pydev_ipython/inputhookpyglet.py +0 -0
  197. {pydevd-pycharm-242.18071.12 → pydevd-pycharm-242.20224.89}/pydev_ipython/inputhookqt4.py +0 -0
  198. {pydevd-pycharm-242.18071.12 → pydevd-pycharm-242.20224.89}/pydev_ipython/inputhookqt5.py +0 -0
  199. {pydevd-pycharm-242.18071.12 → pydevd-pycharm-242.20224.89}/pydev_ipython/inputhookqt6.py +0 -0
  200. {pydevd-pycharm-242.18071.12 → pydevd-pycharm-242.20224.89}/pydev_ipython/inputhooktk.py +0 -0
  201. {pydevd-pycharm-242.18071.12 → pydevd-pycharm-242.20224.89}/pydev_ipython/inputhookwx.py +0 -0
  202. {pydevd-pycharm-242.18071.12 → pydevd-pycharm-242.20224.89}/pydev_ipython/qt.py +0 -0
  203. {pydevd-pycharm-242.18071.12 → pydevd-pycharm-242.20224.89}/pydev_ipython/qt_for_kernel.py +0 -0
  204. {pydevd-pycharm-242.18071.12 → pydevd-pycharm-242.20224.89}/pydev_ipython/qt_loaders.py +0 -0
  205. {pydevd-pycharm-242.18071.12 → pydevd-pycharm-242.20224.89}/pydev_ipython/version.py +0 -0
  206. {pydevd-pycharm-242.18071.12 → pydevd-pycharm-242.20224.89}/pydevconsole.py +0 -0
  207. {pydevd-pycharm-242.18071.12 → pydevd-pycharm-242.20224.89}/pydevd_attach_to_process/README.txt +0 -0
  208. {pydevd-pycharm-242.18071.12 → pydevd-pycharm-242.20224.89}/pydevd_attach_to_process/_always_live_program.py +0 -0
  209. {pydevd-pycharm-242.18071.12 → pydevd-pycharm-242.20224.89}/pydevd_attach_to_process/_check.py +0 -0
  210. {pydevd-pycharm-242.18071.12 → pydevd-pycharm-242.20224.89}/pydevd_attach_to_process/_test_attach_to_process.py +0 -0
  211. {pydevd-pycharm-242.18071.12 → pydevd-pycharm-242.20224.89}/pydevd_attach_to_process/_test_attach_to_process_linux.py +0 -0
  212. {pydevd-pycharm-242.18071.12 → pydevd-pycharm-242.20224.89}/pydevd_attach_to_process/add_code_to_python_process.py +0 -0
  213. {pydevd-pycharm-242.18071.12 → pydevd-pycharm-242.20224.89}/pydevd_attach_to_process/attach_amd64.dll +0 -0
  214. {pydevd-pycharm-242.18071.12 → pydevd-pycharm-242.20224.89}/pydevd_attach_to_process/attach_linux_aarch64.so +0 -0
  215. {pydevd-pycharm-242.18071.12 → pydevd-pycharm-242.20224.89}/pydevd_attach_to_process/attach_linux_amd64.so +0 -0
  216. {pydevd-pycharm-242.18071.12 → pydevd-pycharm-242.20224.89}/pydevd_attach_to_process/attach_linux_x86.so +0 -0
  217. {pydevd-pycharm-242.18071.12 → pydevd-pycharm-242.20224.89}/pydevd_attach_to_process/attach_pydevd.py +0 -0
  218. {pydevd-pycharm-242.18071.12 → pydevd-pycharm-242.20224.89}/pydevd_attach_to_process/attach_script.py +0 -0
  219. {pydevd-pycharm-242.18071.12 → pydevd-pycharm-242.20224.89}/pydevd_attach_to_process/attach_x86.dll +0 -0
  220. {pydevd-pycharm-242.18071.12 → pydevd-pycharm-242.20224.89}/pydevd_attach_to_process/common/python.h +0 -0
  221. {pydevd-pycharm-242.18071.12 → pydevd-pycharm-242.20224.89}/pydevd_attach_to_process/linux_and_mac/attach.cpp +0 -0
  222. {pydevd-pycharm-242.18071.12 → pydevd-pycharm-242.20224.89}/pydevd_attach_to_process/linux_and_mac/compile_linux.sh +0 -0
  223. {pydevd-pycharm-242.18071.12 → pydevd-pycharm-242.20224.89}/pydevd_attach_to_process/linux_and_mac/compile_linux_aarch64.sh +0 -0
  224. {pydevd-pycharm-242.18071.12 → pydevd-pycharm-242.20224.89}/pydevd_attach_to_process/linux_and_mac/compile_mac.sh +0 -0
  225. {pydevd-pycharm-242.18071.12 → pydevd-pycharm-242.20224.89}/pydevd_attach_to_process/linux_and_mac/lldb_prepare.py +0 -0
  226. {pydevd-pycharm-242.18071.12 → pydevd-pycharm-242.20224.89}/pydevd_attach_to_process/run_code_on_dllmain_amd64.dll +0 -0
  227. {pydevd-pycharm-242.18071.12 → pydevd-pycharm-242.20224.89}/pydevd_attach_to_process/run_code_on_dllmain_x86.dll +0 -0
  228. {pydevd-pycharm-242.18071.12 → pydevd-pycharm-242.20224.89}/pydevd_attach_to_process/winappdbg/__init__.py +0 -0
  229. {pydevd-pycharm-242.18071.12 → pydevd-pycharm-242.20224.89}/pydevd_attach_to_process/winappdbg/breakpoint.py +0 -0
  230. {pydevd-pycharm-242.18071.12 → pydevd-pycharm-242.20224.89}/pydevd_attach_to_process/winappdbg/compat.py +0 -0
  231. {pydevd-pycharm-242.18071.12 → pydevd-pycharm-242.20224.89}/pydevd_attach_to_process/winappdbg/crash.py +0 -0
  232. {pydevd-pycharm-242.18071.12 → pydevd-pycharm-242.20224.89}/pydevd_attach_to_process/winappdbg/debug.py +0 -0
  233. {pydevd-pycharm-242.18071.12 → pydevd-pycharm-242.20224.89}/pydevd_attach_to_process/winappdbg/disasm.py +0 -0
  234. {pydevd-pycharm-242.18071.12 → pydevd-pycharm-242.20224.89}/pydevd_attach_to_process/winappdbg/event.py +0 -0
  235. {pydevd-pycharm-242.18071.12 → pydevd-pycharm-242.20224.89}/pydevd_attach_to_process/winappdbg/interactive.py +0 -0
  236. {pydevd-pycharm-242.18071.12 → pydevd-pycharm-242.20224.89}/pydevd_attach_to_process/winappdbg/module.py +0 -0
  237. {pydevd-pycharm-242.18071.12 → pydevd-pycharm-242.20224.89}/pydevd_attach_to_process/winappdbg/plugins/README +0 -0
  238. {pydevd-pycharm-242.18071.12 → pydevd-pycharm-242.20224.89}/pydevd_attach_to_process/winappdbg/plugins/__init__.py +0 -0
  239. {pydevd-pycharm-242.18071.12 → pydevd-pycharm-242.20224.89}/pydevd_attach_to_process/winappdbg/plugins/do_example.py +0 -0
  240. {pydevd-pycharm-242.18071.12 → pydevd-pycharm-242.20224.89}/pydevd_attach_to_process/winappdbg/plugins/do_exchain.py +0 -0
  241. {pydevd-pycharm-242.18071.12 → pydevd-pycharm-242.20224.89}/pydevd_attach_to_process/winappdbg/plugins/do_exploitable.py +0 -0
  242. {pydevd-pycharm-242.18071.12 → pydevd-pycharm-242.20224.89}/pydevd_attach_to_process/winappdbg/plugins/do_symfix.py +0 -0
  243. {pydevd-pycharm-242.18071.12 → pydevd-pycharm-242.20224.89}/pydevd_attach_to_process/winappdbg/process.py +0 -0
  244. {pydevd-pycharm-242.18071.12 → pydevd-pycharm-242.20224.89}/pydevd_attach_to_process/winappdbg/registry.py +0 -0
  245. {pydevd-pycharm-242.18071.12 → pydevd-pycharm-242.20224.89}/pydevd_attach_to_process/winappdbg/search.py +0 -0
  246. {pydevd-pycharm-242.18071.12 → pydevd-pycharm-242.20224.89}/pydevd_attach_to_process/winappdbg/sql.py +0 -0
  247. {pydevd-pycharm-242.18071.12 → pydevd-pycharm-242.20224.89}/pydevd_attach_to_process/winappdbg/system.py +0 -0
  248. {pydevd-pycharm-242.18071.12 → pydevd-pycharm-242.20224.89}/pydevd_attach_to_process/winappdbg/textio.py +0 -0
  249. {pydevd-pycharm-242.18071.12 → pydevd-pycharm-242.20224.89}/pydevd_attach_to_process/winappdbg/thread.py +0 -0
  250. {pydevd-pycharm-242.18071.12 → pydevd-pycharm-242.20224.89}/pydevd_attach_to_process/winappdbg/util.py +0 -0
  251. {pydevd-pycharm-242.18071.12 → pydevd-pycharm-242.20224.89}/pydevd_attach_to_process/winappdbg/win32/__init__.py +0 -0
  252. {pydevd-pycharm-242.18071.12 → pydevd-pycharm-242.20224.89}/pydevd_attach_to_process/winappdbg/win32/advapi32.py +0 -0
  253. {pydevd-pycharm-242.18071.12 → pydevd-pycharm-242.20224.89}/pydevd_attach_to_process/winappdbg/win32/context_amd64.py +0 -0
  254. {pydevd-pycharm-242.18071.12 → pydevd-pycharm-242.20224.89}/pydevd_attach_to_process/winappdbg/win32/context_i386.py +0 -0
  255. {pydevd-pycharm-242.18071.12 → pydevd-pycharm-242.20224.89}/pydevd_attach_to_process/winappdbg/win32/dbghelp.py +0 -0
  256. {pydevd-pycharm-242.18071.12 → pydevd-pycharm-242.20224.89}/pydevd_attach_to_process/winappdbg/win32/defines.py +0 -0
  257. {pydevd-pycharm-242.18071.12 → pydevd-pycharm-242.20224.89}/pydevd_attach_to_process/winappdbg/win32/gdi32.py +0 -0
  258. {pydevd-pycharm-242.18071.12 → pydevd-pycharm-242.20224.89}/pydevd_attach_to_process/winappdbg/win32/kernel32.py +0 -0
  259. {pydevd-pycharm-242.18071.12 → pydevd-pycharm-242.20224.89}/pydevd_attach_to_process/winappdbg/win32/ntdll.py +0 -0
  260. {pydevd-pycharm-242.18071.12 → pydevd-pycharm-242.20224.89}/pydevd_attach_to_process/winappdbg/win32/peb_teb.py +0 -0
  261. {pydevd-pycharm-242.18071.12 → pydevd-pycharm-242.20224.89}/pydevd_attach_to_process/winappdbg/win32/psapi.py +0 -0
  262. {pydevd-pycharm-242.18071.12 → pydevd-pycharm-242.20224.89}/pydevd_attach_to_process/winappdbg/win32/shell32.py +0 -0
  263. {pydevd-pycharm-242.18071.12 → pydevd-pycharm-242.20224.89}/pydevd_attach_to_process/winappdbg/win32/shlwapi.py +0 -0
  264. {pydevd-pycharm-242.18071.12 → pydevd-pycharm-242.20224.89}/pydevd_attach_to_process/winappdbg/win32/user32.py +0 -0
  265. {pydevd-pycharm-242.18071.12 → pydevd-pycharm-242.20224.89}/pydevd_attach_to_process/winappdbg/win32/version.py +0 -0
  266. {pydevd-pycharm-242.18071.12 → pydevd-pycharm-242.20224.89}/pydevd_attach_to_process/winappdbg/win32/wtsapi32.py +0 -0
  267. {pydevd-pycharm-242.18071.12 → pydevd-pycharm-242.20224.89}/pydevd_attach_to_process/winappdbg/window.py +0 -0
  268. {pydevd-pycharm-242.18071.12 → pydevd-pycharm-242.20224.89}/pydevd_attach_to_process/windows/attach.cpp +0 -0
  269. {pydevd-pycharm-242.18071.12 → pydevd-pycharm-242.20224.89}/pydevd_attach_to_process/windows/attach.h +0 -0
  270. {pydevd-pycharm-242.18071.12 → pydevd-pycharm-242.20224.89}/pydevd_attach_to_process/windows/compile_windows.bat +0 -0
  271. {pydevd-pycharm-242.18071.12 → pydevd-pycharm-242.20224.89}/pydevd_attach_to_process/windows/inject_dll.cpp +0 -0
  272. {pydevd-pycharm-242.18071.12 → pydevd-pycharm-242.20224.89}/pydevd_attach_to_process/windows/run_code_on_dllmain.cpp +0 -0
  273. {pydevd-pycharm-242.18071.12 → pydevd-pycharm-242.20224.89}/pydevd_attach_to_process/windows/stdafx.cpp +0 -0
  274. {pydevd-pycharm-242.18071.12 → pydevd-pycharm-242.20224.89}/pydevd_attach_to_process/windows/stdafx.h +0 -0
  275. {pydevd-pycharm-242.18071.12 → pydevd-pycharm-242.20224.89}/pydevd_attach_to_process/windows/targetver.h +0 -0
  276. {pydevd-pycharm-242.18071.12 → pydevd-pycharm-242.20224.89}/pydevd_concurrency_analyser/__init__.py +0 -0
  277. {pydevd-pycharm-242.18071.12 → pydevd-pycharm-242.20224.89}/pydevd_concurrency_analyser/pydevd_concurrency_logger.py +0 -0
  278. {pydevd-pycharm-242.18071.12 → pydevd-pycharm-242.20224.89}/pydevd_concurrency_analyser/pydevd_thread_wrappers.py +0 -0
  279. {pydevd-pycharm-242.18071.12 → pydevd-pycharm-242.20224.89}/pydevd_file_utils.py +0 -0
  280. {pydevd-pycharm-242.18071.12 → pydevd-pycharm-242.20224.89}/pydevd_plugins/__init__.py +0 -0
  281. {pydevd-pycharm-242.18071.12 → pydevd-pycharm-242.20224.89}/pydevd_plugins/django_debug.py +0 -0
  282. {pydevd-pycharm-242.18071.12 → pydevd-pycharm-242.20224.89}/pydevd_plugins/extensions/__init__.py +0 -0
  283. {pydevd-pycharm-242.18071.12 → pydevd-pycharm-242.20224.89}/pydevd_plugins/jinja2_debug.py +0 -0
  284. {pydevd-pycharm-242.18071.12 → pydevd-pycharm-242.20224.89}/pydevd_pycharm.egg-info/SOURCES.txt +0 -0
  285. {pydevd-pycharm-242.18071.12 → pydevd-pycharm-242.20224.89}/pydevd_pycharm.egg-info/dependency_links.txt +0 -0
  286. {pydevd-pycharm-242.18071.12 → pydevd-pycharm-242.20224.89}/pydevd_pycharm.egg-info/entry_points.txt +0 -0
  287. {pydevd-pycharm-242.18071.12 → pydevd-pycharm-242.20224.89}/pydevd_pycharm.egg-info/not-zip-safe +0 -0
  288. {pydevd-pycharm-242.18071.12 → pydevd-pycharm-242.20224.89}/pydevd_pycharm.egg-info/top_level.txt +0 -0
  289. {pydevd-pycharm-242.18071.12 → pydevd-pycharm-242.20224.89}/pydevd_tracing.py +0 -0
  290. {pydevd-pycharm-242.18071.12 → pydevd-pycharm-242.20224.89}/setup.cfg +0 -0
  291. {pydevd-pycharm-242.18071.12 → pydevd-pycharm-242.20224.89}/setup.py +0 -0
  292. {pydevd-pycharm-242.18071.12 → pydevd-pycharm-242.20224.89}/setup_cython.py +0 -0
@@ -0,0 +1,77 @@
1
+ Metadata-Version: 2.1
2
+ Name: pydevd-pycharm
3
+ Version: 242.20224.89
4
+ Summary: PyCharm Debugger (used in PyCharm and PyDev)
5
+ Home-page: https://github.com/JetBrains/intellij-community
6
+ Author: JetBrains, Fabio Zadrozny and others
7
+ License: Apache 2.0
8
+ Keywords: pydev,pydevd,pydev.debugger,pycharm
9
+ Platform: UNKNOWN
10
+ Classifier: Development Status :: 6 - Mature
11
+ Classifier: Environment :: Console
12
+ Classifier: Intended Audience :: Developers
13
+ Classifier: License :: OSI Approved :: Apache Software License
14
+ Classifier: Operating System :: MacOS :: MacOS X
15
+ Classifier: Operating System :: Microsoft :: Windows
16
+ Classifier: Operating System :: POSIX
17
+ Classifier: Programming Language :: Python
18
+ Classifier: Programming Language :: Python :: 2
19
+ Classifier: Programming Language :: Python :: 2.7
20
+ Classifier: Programming Language :: Python :: 3
21
+ Classifier: Programming Language :: Python :: 3.4
22
+ Classifier: Programming Language :: Python :: 3.5
23
+ Classifier: Programming Language :: Python :: 3.6
24
+ Classifier: Programming Language :: Python :: 3.7
25
+ Classifier: Programming Language :: Python :: 3.8
26
+ Classifier: Programming Language :: Python :: 3.9
27
+ Classifier: Programming Language :: Python :: 3.10
28
+ Classifier: Programming Language :: Python :: 3.11
29
+ Classifier: Programming Language :: Python :: 3.12
30
+ Classifier: Topic :: Software Development :: Debuggers
31
+ License-File: LICENSE
32
+
33
+ PyDev.Debugger
34
+ ==============
35
+
36
+ The sources for the PyDev.Debugger (used in PyDev & PyCharm) may be seen at:
37
+
38
+ https://github.com/fabioz/PyDev.Debugger
39
+
40
+ In general, the debugger backend should **NOT** be installed separately if you're using an IDE which already
41
+ bundles it (such as PyDev or PyCharm).
42
+
43
+ It is however available in PyPi so that it can be installed for doing remote debugging with `pip` -- so, when
44
+ debugging a process which runs in another machine, it's possible to `pip install pydevd-pycharm` and in the code use
45
+ `pydevd_pycharm.settrace(host='10.1.1.1')` to connect the debugger backend to the debugger UI running in the IDE
46
+ (whereas previously the sources had to be manually copied from the IDE installation).
47
+
48
+ It should be compatible with Python 2.6 onwards (as well as Jython 2.7, IronPython and PyPy -- and
49
+ any other variant which properly supports the Python structure for debuggers -- i.e.: sys.settrace/threading.settrace).
50
+
51
+ Recent versions contain speedup modules using Cython, which are generated with a few changes in the regular files
52
+ to `cythonize` the files. To update and compile the cython sources (and generate some other auto-generated files),
53
+ `build_tools/build.py` should be run -- note that the resulting .pyx and .c files should be commited.
54
+
55
+ To generate a distribution with the precompiled binaries for the IDE, `build_binaries_windows.py` should be run (
56
+ note that the environments must be pre-created as specified in that file).
57
+
58
+ To generate a distribution to upload to PyPi, `python setup.py sdist bdist_wheel` should be run for each python version
59
+ which should have a wheel and afterwards `twine upload -s dist/pydevd-*` should be run to actually upload the contents
60
+ to PyPi.
61
+
62
+ Travis (Linux CI):
63
+
64
+ .. |travis| image:: https://travis-ci.org/fabioz/PyDev.Debugger.png
65
+ :target: https://travis-ci.org/fabioz/PyDev.Debugger
66
+
67
+ |travis|
68
+
69
+ Appveyor (Windows CI):
70
+
71
+ .. |appveyor| image:: https://ci.appveyor.com/api/projects/status/j6vjq687brbk20ux?svg=true
72
+ :target: https://ci.appveyor.com/project/fabioz/pydev-debugger
73
+
74
+ |appveyor|
75
+
76
+
77
+
@@ -0,0 +1 @@
1
+ 242.20224.89
@@ -0,0 +1,32 @@
1
+ from _pydev_imps._pydev_saved_modules import threading
2
+
3
+ # Hack for https://www.brainwy.com/tracker/PyDev/363
4
+ # I.e.: calling isAlive() can throw AssertionError under some circumstances
5
+ # It is required to debug threads started by start_new_thread in Python 3.4
6
+ _temp = threading.Thread()
7
+
8
+ # Python <=3.12
9
+ if hasattr(_temp, '_is_stopped'):
10
+ def is_thread_alive(t):
11
+ return not t._is_stopped
12
+
13
+ # Python 2.x
14
+ elif hasattr(_temp, '_Thread__stopped'):
15
+ def is_thread_alive(t):
16
+ return not t._Thread__stopped
17
+
18
+ # Jython wraps a native java thread and thus only obeys the public API
19
+ elif hasattr(_temp, 'isAlive'):
20
+ def is_thread_alive(t):
21
+ return t.isAlive()
22
+
23
+ # Python >=3.13
24
+ elif hasattr(_temp, 'is_alive'):
25
+ def is_thread_alive(t):
26
+ return t.is_alive()
27
+
28
+ else:
29
+ def is_thread_alive(t):
30
+ raise RuntimeError('Cannot determine how to check if thread is alive')
31
+
32
+ del _temp
@@ -148,7 +148,7 @@ from _pydevd_bundle.pydevd_comm_constants import (
148
148
  MAX_IO_MSG_SIZE = 1000 #if the io is too big, we'll not send all (could make the debugger too non-responsive)
149
149
  #this number can be changed if there's need to do so
150
150
 
151
- VERSION_STRING = "242.18071.12"
151
+ VERSION_STRING = "242.20224.89"
152
152
 
153
153
  from _pydev_bundle._pydev_filesystem_encoding import getfilesystemencoding
154
154
  file_system_encoding = getfilesystemencoding()
@@ -270,9 +270,7 @@ class ReaderThread(PyDBDaemonThread):
270
270
  self.name = "pydevd.Reader"
271
271
  from _pydevd_bundle.pydevd_process_net_command import process_net_command
272
272
  self.process_net_command = process_net_command
273
- self.global_debugger_holder = GlobalDebuggerHolder
274
-
275
-
273
+ self.debugger = GlobalDebuggerHolder.global_dbg
276
274
 
277
275
  def do_kill_pydev_thread(self):
278
276
  #We must close the socket so that it doesn't stay halted there.
@@ -330,12 +328,11 @@ class ReaderThread(PyDBDaemonThread):
330
328
  traceback.print_exc()
331
329
  self.handle_except()
332
330
 
333
-
334
331
  def handle_except(self):
335
- self.global_debugger_holder.global_dbg.finish_debugging_session()
332
+ self.debugger.finish_debugging_session()
336
333
 
337
334
  def process_command(self, cmd_id, seq, text):
338
- self.process_net_command(self.global_debugger_holder.global_dbg, cmd_id, seq, text)
335
+ self.process_net_command(self.debugger, cmd_id, seq, text)
339
336
 
340
337
 
341
338
  #----------------------------------------------------------------------------------- SOCKET UTILITIES - WRITER
@@ -1,4 +1,6 @@
1
1
  # Copyright 2000-2022 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
2
+ import threading
3
+
2
4
  from _pydevd_bundle.pydevd_constants import RETURN_VALUES_DICT, dict_iter_items, \
3
5
  GET_FRAME_NORMAL_GROUP, GET_FRAME_SPECIAL_GROUP
4
6
 
@@ -172,19 +174,36 @@ THRIFT_COMMUNICATION_VARS_HANDLER = 1
172
174
 
173
175
 
174
176
  class VarsHandlerContainer:
175
- _instance_xml_handler = None
176
- _instance_thrift_handler = None
177
+ instance_xml_handler = None
178
+ instance_thrift_handler = None
179
+
180
+
181
+ _vars_handler_initialization_lock = threading.RLock()
182
+
183
+
184
+ def _init_xml_communication_vars_handler(func, handler_type):
185
+ with _vars_handler_initialization_lock:
186
+ if VarsHandlerContainer.instance_xml_handler is None:
187
+ VarsHandlerContainer.instance_xml_handler = \
188
+ VarsHandler(func, handler_type)
189
+
190
+
191
+ def _init_thrift_communication_var_handler(func, handler_type):
192
+ with _vars_handler_initialization_lock:
193
+ if VarsHandlerContainer.instance_thrift_handler is None:
194
+ VarsHandlerContainer.instance_thrift_handler = \
195
+ VarsHandler(func, handler_type)
177
196
 
178
197
 
179
198
  def get_vars_handler(func, handler_type, group_type):
180
199
  if handler_type == XML_COMMUNICATION_VARS_HANDLER:
181
- if VarsHandlerContainer._instance_xml_handler is None:
182
- VarsHandlerContainer._instance_xml_handler = VarsHandler(func, handler_type)
183
- return VarsHandlerContainer._instance_xml_handler.get_instance(group_type)
200
+ if VarsHandlerContainer.instance_xml_handler is None:
201
+ _init_xml_communication_vars_handler(func, handler_type)
202
+ return VarsHandlerContainer.instance_xml_handler.get_instance(group_type)
184
203
  elif handler_type == THRIFT_COMMUNICATION_VARS_HANDLER:
185
- if VarsHandlerContainer._instance_thrift_handler is None:
186
- VarsHandlerContainer._instance_thrift_handler = VarsHandler(func, handler_type)
187
- return VarsHandlerContainer._instance_thrift_handler.get_instance(group_type)
204
+ if VarsHandlerContainer.instance_thrift_handler is None:
205
+ _init_thrift_communication_var_handler(func, handler_type)
206
+ return VarsHandlerContainer.instance_thrift_handler.get_instance(group_type)
188
207
 
189
208
 
190
209
  class VarsHandler:
@@ -194,23 +213,26 @@ class VarsHandler:
194
213
  self._instance_special = None
195
214
  self._instance_return = None
196
215
  self.handler_type = handler_type
216
+ self._lock = threading.RLock()
197
217
 
198
218
  def get_instance(self, group_type):
199
- if group_type == GET_FRAME_NORMAL_GROUP:
200
- if self._instance_normal is None:
201
- self._init_normal()
202
- instance = self._instance_normal
203
- elif group_type == GET_FRAME_SPECIAL_GROUP:
204
- if self._instance_special is None:
205
- self._init_special()
206
- instance = self._instance_special
207
- else:
208
- if self._instance_return is None:
209
- self._init_return()
210
- instance = self._instance_return
219
+ with self._lock:
220
+ if group_type == GET_FRAME_NORMAL_GROUP:
221
+ if self._instance_normal is None:
222
+ self._init_normal()
223
+ instance = self._instance_normal
224
+ elif group_type == GET_FRAME_SPECIAL_GROUP:
225
+ if self._instance_special is None:
226
+ self._init_special()
227
+ instance = self._instance_special
228
+ else:
229
+ if self._instance_return is None:
230
+ self._init_return()
231
+ instance = self._instance_return
232
+
233
+ instance.update_handlers()
211
234
 
212
- instance.update_handlers()
213
- return instance
235
+ return instance
214
236
 
215
237
  def _init_normal(self):
216
238
  self._instance_normal = DummyVarHandler(
@@ -10,7 +10,7 @@ class TableCommandType:
10
10
  DF_INFO = "DF_INFO"
11
11
  SLICE = "SLICE"
12
12
  DESCRIBE = "DF_DESCRIBE"
13
- HISTOGRAM_DATA = "HISTOGRAM_DATA"
13
+ VISUALIZATION_DATA = "VISUALIZATION_DATA"
14
14
 
15
15
 
16
16
  def is_error_on_eval(val):
@@ -47,10 +47,8 @@ def exec_table_command(init_command, command_type, start_index, end_index, f_glo
47
47
 
48
48
  elif command_type == TableCommandType.DESCRIBE:
49
49
  res.append(table_provider.get_column_descriptions(table))
50
- res.append(NEXT_VALUE_SEPARATOR)
51
- res.append(table_provider.get_value_counts(table))
52
50
 
53
- elif command_type == TableCommandType.HISTOGRAM_DATA:
51
+ elif command_type == TableCommandType.VISUALIZATION_DATA:
54
52
  res.append(table_provider.get_value_occurrences_count(table))
55
53
  res.append(NEXT_VALUE_SEPARATOR)
56
54
 
@@ -70,6 +68,7 @@ def __get_table_provider(output):
70
68
  if type_qualified_name in ['pandas.core.frame.DataFrame',
71
69
  'pandas.core.series.Series',
72
70
  'geopandas.geoseries.GeoSeries',
71
+ 'geopandas.geodataframe.GeoDataFrame',
73
72
  'pandera.typing.pandas.DataFrame']:
74
73
  import _pydevd_bundle.tables.pydevd_pandas as table_provider
75
74
  # dict is needed for sort commands
@@ -84,5 +83,7 @@ def __get_table_provider(output):
84
83
  type_qualified_name.endswith('DataFrame')
85
84
  or type_qualified_name.endswith('Series')):
86
85
  import _pydevd_bundle.tables.pydevd_polars as table_provider
86
+ elif type_qualified_name == 'datasets.arrow_dataset.Dataset':
87
+ import _pydevd_bundle.tables.pydevd_dataset as table_provider
87
88
 
88
89
  return table_provider
@@ -17,7 +17,7 @@ from _pydevd_bundle.pydevd_extension_api import TypeResolveProvider, StrPresenta
17
17
  from _pydevd_bundle.pydevd_user_type_renderers_utils import try_get_type_renderer_for_var
18
18
  from _pydevd_bundle.pydevd_utils import is_string, should_evaluate_full_value, should_evaluate_shape
19
19
  from _pydevd_bundle.pydevd_vars import get_label, array_default_format, is_able_to_format_number, MAXIMUM_ARRAY_SIZE, \
20
- get_column_formatter_by_type, get_formatted_row_elements, DEFAULT_DF_FORMAT, DATAFRAME_HEADER_LOAD_MAX_SIZE
20
+ get_column_formatter_by_type, get_formatted_row_elements, IAtPolarsAccessor, DEFAULT_DF_FORMAT, DATAFRAME_HEADER_LOAD_MAX_SIZE
21
21
  from pydev_console.pydev_protocol import DebugValue, GetArrayResponse, ArrayData, ArrayHeaders, ColHeader, RowHeader, \
22
22
  UnsupportedArrayTypeException, ExceedingArrayDimensionsException
23
23
  from _pydevd_bundle.pydevd_xml import ExceptionOnEvaluate
@@ -420,6 +420,10 @@ def sparse_tensor_to_thrift_struct(tensor, name, roffset, coffset, rows, cols, f
420
420
  pass
421
421
 
422
422
 
423
+ def dataset_to_thrift_struct(dataset, name, roffset, coffset, rows, cols, format):
424
+ return dataframe_to_thrift_struct(dataset.to_pandas(), name, roffset, coffset, rows, cols, format)
425
+
426
+
423
427
  def array_to_meta_thrift_struct(array, name, format):
424
428
  type = array.dtype.kind
425
429
  slice = name
@@ -501,7 +505,7 @@ def dataframe_to_thrift_struct(df, name, roffset, coffset, rows, cols, format):
501
505
 
502
506
  """
503
507
  original_df = df
504
- dim = len(df.axes)
508
+ dim = len(df.axes) if hasattr(df, 'axes') else -1
505
509
  num_rows = df.shape[0]
506
510
  num_cols = df.shape[1] if dim > 1 else 1
507
511
  array_chunk = GetArrayResponse()
@@ -519,7 +523,7 @@ def dataframe_to_thrift_struct(df, name, roffset, coffset, rows, cols, format):
519
523
  except AttributeError:
520
524
  try:
521
525
  kind = df.dtypes[0].kind
522
- except (IndexError, KeyError):
526
+ except (IndexError, KeyError, AttributeError):
523
527
  kind = "O"
524
528
  format = array_default_format(kind)
525
529
  else:
@@ -552,19 +556,34 @@ def dataframe_to_thrift_struct(df, name, roffset, coffset, rows, cols, format):
552
556
  else:
553
557
  bounds = (0, 0)
554
558
  col_bounds[col] = bounds
559
+ elif dim == -1:
560
+ dtype = '0'
561
+ dtypes[0] = dtype
562
+ col_bounds[0] = (df.min(), df.max()) if dtype in NUMPY_NUMERIC_TYPES and df.size != 0 else (0, 0)
555
563
  else:
556
564
  dtype = df.dtype.kind
557
565
  dtypes[0] = dtype
558
566
  col_bounds[0] = (df.min(), df.max()) if dtype in NUMPY_NUMERIC_TYPES and df.size != 0 else (0, 0)
559
567
 
560
- df = df.iloc[roffset: roffset + rows, coffset: coffset + cols] if dim > 1 else df.iloc[roffset: roffset + rows]
568
+ if dim > 1:
569
+ df = df.iloc[roffset: roffset + rows, coffset: coffset + cols]
570
+ elif dim == -1:
571
+ df = df[roffset: roffset + rows]
572
+ else:
573
+ df.iloc[roffset: roffset + rows]
574
+
561
575
  rows = df.shape[0]
562
576
  cols = df.shape[1] if dim > 1 else 1
563
577
 
564
578
  def col_to_format(c):
565
579
  return get_column_formatter_by_type(format, dtypes[c])
566
580
 
567
- iat = df.iat if dim == 1 or len(df.columns.unique()) == len(df.columns) else df.iloc
581
+ if dim == -1:
582
+ iat = IAtPolarsAccessor(df)
583
+ elif dim == 1 or len(df.columns.unique()) == len(df.columns):
584
+ iat = df.iat
585
+ else:
586
+ iat = df.iloc
568
587
 
569
588
  def formatted_row_elements(row):
570
589
  return get_formatted_row_elements(row, iat, dim, cols, format, dtypes)
@@ -606,7 +625,7 @@ def header_data_to_thrift_struct(rows, cols, dtypes, col_bounds, col_to_format,
606
625
  for row in range(rows):
607
626
  row_header = RowHeader()
608
627
  row_header.index = row
609
- row_header.label = get_label(df.axes[0].values[row])
628
+ row_header.label = get_label(df.axes[0].values[row] if dim != -1 else str(row))
610
629
  row_headers.append(row_header)
611
630
  array_headers.colHeaders = col_headers
612
631
  array_headers.rowHeaders = row_headers
@@ -621,6 +640,7 @@ TYPE_TO_THRIFT_STRUCT_CONVERTERS = {
621
640
  "Tensor": tensor_to_thrift_struct,
622
641
  "DataFrame": dataframe_to_thrift_struct,
623
642
  "Series": dataframe_to_thrift_struct,
643
+ "Dataset": dataset_to_thrift_struct,
624
644
  "GeoDataFrame": dataframe_to_thrift_struct,
625
645
  "GeoSeries": dataframe_to_thrift_struct
626
646
  }
@@ -627,6 +627,25 @@ def should_evaluate_shape():
627
627
  return LOAD_VALUES_POLICY != ValuesPolicy.ON_DEMAND
628
628
 
629
629
 
630
+ def is_safe_to_access(obj, attr_name):
631
+ """Evaluates the safety of attribute accessibility via `obj.attr_name`.
632
+
633
+ Direct attribute access can occasionally lead to unsafe conditions. A typical
634
+ scenario is when an extension class contains a property that might attempt to
635
+ access a field before its initialization. This function aims to verify the safety
636
+ of attribute access in the most risk-free manner. As an example, it leverages the
637
+ `inspect` module, facilitating attribute retrieval without triggering any
638
+ descriptor functionality.
639
+ """
640
+ attr = inspect.getattr_static(obj, attr_name, None)
641
+
642
+ # Should we check for other descriptor types here?
643
+ if inspect.isgetsetdescriptor(attr):
644
+ return False
645
+
646
+ return True
647
+
648
+
630
649
  def is_in_unittests_debugging_mode():
631
650
  debugger = get_global_debugger()
632
651
  if debugger:
@@ -693,6 +693,13 @@ def get_label(label):
693
693
 
694
694
  DATAFRAME_HEADER_LOAD_MAX_SIZE = 100
695
695
 
696
+ class IAtPolarsAccessor:
697
+ def __init__(self, ps):
698
+ self.ps = ps
699
+
700
+ def __getitem__(self, row):
701
+ return self.ps[row]
702
+
696
703
 
697
704
  def dataframe_to_xml(df, name, roffset, coffset, rows, cols, format):
698
705
  """
@@ -707,7 +714,7 @@ def dataframe_to_xml(df, name, roffset, coffset, rows, cols, format):
707
714
 
708
715
  """
709
716
  original_df = df
710
- dim = len(df.axes)
717
+ dim = len(df.axes) if hasattr(df, 'axes') else -1
711
718
  num_rows = df.shape[0]
712
719
  num_cols = df.shape[1] if dim > 1 else 1
713
720
  format = format.replace('%', '')
@@ -719,7 +726,7 @@ def dataframe_to_xml(df, name, roffset, coffset, rows, cols, format):
719
726
  except AttributeError:
720
727
  try:
721
728
  kind = df.dtypes[0].kind
722
- except (IndexError, KeyError):
729
+ except (IndexError, KeyError, AttributeError):
723
730
  kind = 'O'
724
731
  format = array_default_format(kind)
725
732
  else:
@@ -752,19 +759,34 @@ def dataframe_to_xml(df, name, roffset, coffset, rows, cols, format):
752
759
  else:
753
760
  bounds = (0, 0)
754
761
  col_bounds[col] = bounds
762
+ elif dim == -1:
763
+ dtype = '0'
764
+ dtypes[0] = dtype
765
+ col_bounds[0] = (df.min(), df.max()) if dtype in NUMPY_NUMERIC_TYPES and df.size != 0 else (0, 0)
755
766
  else:
756
767
  dtype = df.dtype.kind
757
768
  dtypes[0] = dtype
758
769
  col_bounds[0] = (df.min(), df.max()) if dtype in NUMPY_NUMERIC_TYPES and df.size != 0 else (0, 0)
759
770
 
760
- df = df.iloc[roffset: roffset + rows, coffset: coffset + cols] if dim > 1 else df.iloc[roffset: roffset + rows]
771
+ if dim > 1:
772
+ df = df.iloc[roffset: roffset + rows, coffset: coffset + cols]
773
+ elif dim == -1:
774
+ df = df[roffset: roffset + rows]
775
+ else:
776
+ df.iloc[roffset: roffset + rows]
777
+
761
778
  rows = df.shape[0]
762
779
  cols = df.shape[1] if dim > 1 else 1
763
780
 
764
781
  def col_to_format(column_type):
765
782
  return get_column_formatter_by_type(format, column_type)
766
783
 
767
- iat = df.iat if dim == 1 or len(df.columns.unique()) == len(df.columns) else df.iloc
784
+ if dim == -1:
785
+ iat = IAtPolarsAccessor(df)
786
+ elif dim == 1 or len(df.columns.unique()) == len(df.columns):
787
+ iat = df.iat
788
+ else:
789
+ iat = df.iloc
768
790
 
769
791
  def formatted_row_elements(row):
770
792
  return get_formatted_row_elements(row, iat, dim, cols, format, dtypes)
@@ -774,6 +796,9 @@ def dataframe_to_xml(df, name, roffset, coffset, rows, cols, format):
774
796
  xml += array_data_to_xml(rows, cols, formatted_row_elements, format)
775
797
  return xml
776
798
 
799
+ def dataset_to_xml(dataset, name, roffset, coffset, rows, cols, format):
800
+ return dataframe_to_xml(dataset.to_pandas(), name, roffset, coffset, rows, cols, format)
801
+
777
802
 
778
803
  def array_data_to_xml(rows, cols, get_row, format):
779
804
  xml = "<arraydata rows=\"%s\" cols=\"%s\"/>\n" % (rows, cols)
@@ -798,7 +823,7 @@ def header_data_to_xml(rows, cols, dtypes, col_bounds, col_to_format, df, dim):
798
823
  xml += '<colheader index=\"%s\" label=\"%s\" type=\"%s\" format=\"%s\" max=\"%s\" min=\"%s\" />\n' % \
799
824
  (str(col), col_label, dtypes[col], col_to_format(dtypes[col]), quote(str(col_format % bounds[1])), quote(str(col_format % bounds[0])))
800
825
  for row in range(rows):
801
- xml += "<rowheader index=\"%s\" label = \"%s\"/>\n" % (str(row), quote(get_label(df.axes[0][row])))
826
+ xml += "<rowheader index=\"%s\" label = \"%s\"/>\n" % (str(row), quote(get_label(df.axes[0][row] if dim != -1 else str(row))))
802
827
  xml += "</headerdata>\n"
803
828
  return xml
804
829
 
@@ -820,7 +845,8 @@ TYPE_TO_XML_CONVERTERS = {
820
845
  "EagerTensor": tensor_to_xml,
821
846
  "ResourceVariable": tensor_to_xml,
822
847
  "SparseTensor": sparse_tensor_to_xml,
823
- "Tensor": tensor_to_xml
848
+ "Tensor": tensor_to_xml,
849
+ "Dataset": dataset_to_xml
824
850
  }
825
851
 
826
852
 
@@ -11,14 +11,18 @@ from _pydev_bundle import pydev_log
11
11
  from _pydev_bundle.pydev_imports import quote
12
12
  from _pydevd_bundle import pydevd_extension_utils
13
13
  from _pydevd_bundle import pydevd_resolver
14
- from _pydevd_bundle.pydevd_constants import dict_iter_items, dict_keys, IS_PY3K, \
15
- MAXIMUM_VARIABLE_REPRESENTATION_SIZE, RETURN_VALUES_DICT, LOAD_VALUES_POLICY, DEFAULT_VALUES_DICT, \
16
- GET_FRAME_RETURN_GROUP
17
- from _pydevd_bundle.pydevd_extension_api import TypeResolveProvider, StrPresentationProvider
18
- from _pydevd_bundle.pydevd_user_type_renderers_utils import try_get_type_renderer_for_var
19
- from _pydevd_bundle.pydevd_utils import is_string, should_evaluate_full_value, should_evaluate_shape
20
- from _pydevd_bundle.pydevd_frame_type_handler import get_vars_handler, DO_NOT_PROCESS_VARS, XML_COMMUNICATION_VARS_HANDLER
14
+ from _pydevd_bundle.pydevd_constants import dict_keys, IS_PY3K, \
15
+ LOAD_VALUES_POLICY, DEFAULT_VALUES_DICT
16
+ from _pydevd_bundle.pydevd_extension_api import TypeResolveProvider, \
17
+ StrPresentationProvider
18
+ from _pydevd_bundle.pydevd_frame_type_handler import get_vars_handler, \
19
+ DO_NOT_PROCESS_VARS, XML_COMMUNICATION_VARS_HANDLER
21
20
  from _pydevd_bundle.pydevd_repr_utils import get_value_repr
21
+ from _pydevd_bundle.pydevd_user_type_renderers_utils import \
22
+ try_get_type_renderer_for_var
23
+ from _pydevd_bundle.pydevd_utils import is_string, should_evaluate_full_value, \
24
+ should_evaluate_shape, is_safe_to_access
25
+
22
26
  try:
23
27
  import types
24
28
 
@@ -340,7 +344,7 @@ def var_to_xml(val, name, do_trim=True, additional_in_xml='', evaluate_full_valu
340
344
  # shape to xml
341
345
  xml_shape = ''
342
346
  try:
343
- if should_evaluate_shape():
347
+ if should_evaluate_shape() and is_safe_to_access(v, 'shape'):
344
348
  if hasattr(v, 'shape') and not callable(v.shape):
345
349
  xml_shape = ' shape="%s"' % make_valid_xml_value(str(tuple(v.shape)))
346
350
  elif hasattr(v, '__len__') and not is_string(v):
@@ -56,13 +56,26 @@ def find_gui_and_backend():
56
56
  def is_interactive_backend(backend):
57
57
  """ Check if backend is interactive """
58
58
  matplotlib = sys.modules['matplotlib']
59
- from matplotlib.rcsetup import interactive_bk, non_interactive_bk # @UnresolvedImport
60
- if backend in interactive_bk:
61
- return True
62
- elif backend in non_interactive_bk:
63
- return False
59
+ required_version = (3, 9)
60
+ installed_version = tuple(map(int, matplotlib.__version__.split(".")))
61
+
62
+ if installed_version >= required_version:
63
+ interactive_bk = matplotlib.backends.backend_registry.list_builtin(matplotlib.backends.BackendFilter.INTERACTIVE)
64
+ non_interactive_bk = matplotlib.backends.backend_registry.list_builtin(matplotlib.backends.BackendFilter.NON_INTERACTIVE)
65
+ if backend in interactive_bk:
66
+ return True
67
+ elif backend in non_interactive_bk:
68
+ return False
69
+ else:
70
+ return matplotlib.is_interactive()
64
71
  else:
65
- return matplotlib.is_interactive()
72
+ from matplotlib.rcsetup import interactive_bk, non_interactive_bk # @UnresolvedImport
73
+ if backend in interactive_bk:
74
+ return True
75
+ elif backend in non_interactive_bk:
76
+ return False
77
+ else:
78
+ return matplotlib.is_interactive()
66
79
 
67
80
 
68
81
  def patch_use(enable_gui_function):
@@ -59,7 +59,8 @@ from _pydevd_bundle.pydevd_kill_all_pydevd_threads import kill_all_pydev_threads
59
59
  from _pydevd_bundle.pydevd_trace_dispatch import (
60
60
  trace_dispatch as _trace_dispatch, global_cache_skips, global_cache_frame_skips, show_tracing_warning)
61
61
  from _pydevd_frame_eval.pydevd_frame_eval_main import (
62
- frame_eval_func, dummy_trace_dispatch, show_frame_eval_warning)
62
+ frame_eval_func, clear_thread_local_info, dummy_trace_dispatch,
63
+ show_frame_eval_warning)
63
64
  from _pydevd_bundle.pydevd_pep_669_tracing_wrapper import enable_pep669_monitoring
64
65
  from _pydevd_bundle.pydevd_additional_thread_info import set_additional_thread_info
65
66
  from _pydevd_bundle.pydevd_utils import save_main_module, is_current_thread_main_thread, \
@@ -385,8 +386,13 @@ def stoptrace():
385
386
 
386
387
  kill_all_pydev_threads()
387
388
 
389
+ set_global_debugger(None)
390
+
388
391
  connected = False
389
392
 
393
+ if clear_thread_local_info is not None:
394
+ clear_thread_local_info()
395
+
390
396
 
391
397
  #=======================================================================================================================
392
398
  # PyDB
@@ -1953,7 +1959,6 @@ def settrace_forked():
1953
1959
  from _pydevd_bundle.pydevd_constants import GlobalDebuggerHolder
1954
1960
  GlobalDebuggerHolder.global_dbg = None
1955
1961
 
1956
- from _pydevd_frame_eval.pydevd_frame_eval_main import clear_thread_local_info
1957
1962
  host, port = dispatch()
1958
1963
 
1959
1964
  import pydevd_tracing