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
@@ -37,7 +37,7 @@ SQL database storage support.
37
37
 
38
38
  __revision__ = "$Id$"
39
39
 
40
- __all__ = ['CrashDAO']
40
+ __all__ = ["CrashDAO"]
41
41
 
42
42
  import sqlite3
43
43
  import datetime
@@ -50,46 +50,52 @@ from sqlalchemy.ext.declarative import declarative_base
50
50
  from sqlalchemy.interfaces import PoolListener
51
51
  from sqlalchemy.orm import sessionmaker, deferred
52
52
  from sqlalchemy.orm.exc import NoResultFound, MultipleResultsFound
53
- from sqlalchemy.types import Integer, BigInteger, Boolean, DateTime, String, \
54
- LargeBinary, Enum, VARCHAR
53
+ from sqlalchemy.types import Integer, BigInteger, Boolean, DateTime, String, LargeBinary, Enum, VARCHAR
55
54
  from sqlalchemy.sql.expression import asc, desc
56
55
 
57
56
  from crash import Crash, Marshaller, pickle, HIGHEST_PROTOCOL
58
57
  from textio import CrashDump
59
58
  import win32
60
59
 
61
- #------------------------------------------------------------------------------
60
+ # ------------------------------------------------------------------------------
62
61
 
63
62
  try:
64
63
  from decorator import decorator
65
64
  except ImportError:
66
65
  import functools
66
+
67
67
  def decorator(w):
68
68
  """
69
69
  The C{decorator} module was not found. You can install it from:
70
70
  U{http://pypi.python.org/pypi/decorator/}
71
71
  """
72
+
72
73
  def d(fn):
73
74
  @functools.wraps(fn)
74
75
  def x(*argv, **argd):
75
76
  return w(fn, *argv, **argd)
77
+
76
78
  return x
79
+
77
80
  return d
78
81
 
79
- #------------------------------------------------------------------------------
82
+ # ------------------------------------------------------------------------------
80
83
 
81
- @compiles(String, 'mysql')
82
- @compiles(VARCHAR, 'mysql')
84
+
85
+ @compiles(String, "mysql")
86
+ @compiles(VARCHAR, "mysql")
83
87
  def _compile_varchar_mysql(element, compiler, **kw):
84
88
  """MySQL hack to avoid the "VARCHAR requires a length" error."""
85
- if not element.length or element.length == 'max':
89
+ if not element.length or element.length == "max":
86
90
  return "TEXT"
87
91
  else:
88
92
  return compiler.visit_VARCHAR(element, **kw)
89
93
 
90
- #------------------------------------------------------------------------------
91
94
 
92
- class _SQLitePatch (PoolListener):
95
+ # ------------------------------------------------------------------------------
96
+
97
+
98
+ class _SQLitePatch(PoolListener):
93
99
  """
94
100
  Used internally by L{BaseDAO}.
95
101
 
@@ -98,6 +104,7 @@ class _SQLitePatch (PoolListener):
98
104
 
99
105
  @see: U{http://sqlite.org/foreignkeys.html}
100
106
  """
107
+
101
108
  def connect(dbapi_connection, connection_record):
102
109
  """
103
110
  Called once by SQLAlchemy for each new SQLite DB-API connection.
@@ -124,29 +131,28 @@ class _SQLitePatch (PoolListener):
124
131
  dbapi_connection.close()
125
132
  raise sqlite3.Error()
126
133
 
127
- #------------------------------------------------------------------------------
128
134
 
129
- class BaseDTO (object):
135
+ # ------------------------------------------------------------------------------
136
+
137
+
138
+ class BaseDTO(object):
130
139
  """
131
140
  Customized declarative base for SQLAlchemy.
132
141
  """
133
142
 
134
143
  __table_args__ = {
135
-
136
144
  # Don't use MyISAM in MySQL. It doesn't support ON DELETE CASCADE.
137
- 'mysql_engine': 'InnoDB',
138
-
145
+ "mysql_engine": "InnoDB",
139
146
  # Don't use BlitzDB in Drizzle. It doesn't support foreign keys.
140
- 'drizzle_engine': 'InnoDB',
141
-
147
+ "drizzle_engine": "InnoDB",
142
148
  # Collate to UTF-8.
143
- 'mysql_charset': 'utf8',
149
+ "mysql_charset": "utf8",
150
+ }
144
151
 
145
- }
146
152
 
147
- BaseDTO = declarative_base(cls = BaseDTO)
153
+ BaseDTO = declarative_base(cls=BaseDTO)
148
154
 
149
- #------------------------------------------------------------------------------
155
+ # ------------------------------------------------------------------------------
150
156
 
151
157
  # TODO: if using mssql, check it's at least SQL Server 2005
152
158
  # (LIMIT and OFFSET support is required).
@@ -160,7 +166,8 @@ BaseDTO = declarative_base(cls = BaseDTO)
160
166
  # http://dev.mysql.com/doc/refman/5.1/en/optimize-table.html
161
167
  # http://msdn.microsoft.com/en-us/library/ms174459(v=sql.90).aspx
162
168
 
163
- class BaseDAO (object):
169
+
170
+ class BaseDAO(object):
164
171
  """
165
172
  Data Access Object base class.
166
173
 
@@ -187,12 +194,9 @@ class BaseDAO (object):
187
194
 
188
195
  _echo = False
189
196
 
190
- _new_session = sessionmaker(autoflush = True,
191
- autocommit = True,
192
- expire_on_commit = True,
193
- weak_identity_map = True)
197
+ _new_session = sessionmaker(autoflush=True, autocommit=True, expire_on_commit=True, weak_identity_map=True)
194
198
 
195
- def __init__(self, url, creator = None):
199
+ def __init__(self, url, creator=None):
196
200
  """
197
201
  Connect to the database using the given connection URL.
198
202
 
@@ -252,34 +256,34 @@ class BaseDAO (object):
252
256
  # Parse the connection URL.
253
257
  parsed_url = URL(url)
254
258
  schema = parsed_url.drivername
255
- if '+' in schema:
256
- dialect, driver = schema.split('+')
259
+ if "+" in schema:
260
+ dialect, driver = schema.split("+")
257
261
  else:
258
- dialect, driver = schema, 'base'
262
+ dialect, driver = schema, "base"
259
263
  dialect = dialect.strip().lower()
260
264
  driver = driver.strip()
261
265
 
262
266
  # Prepare the database engine arguments.
263
- arguments = {'echo' : self._echo}
264
- if dialect == 'sqlite':
265
- arguments['module'] = sqlite3.dbapi2
266
- arguments['listeners'] = [_SQLitePatch()]
267
+ arguments = {"echo": self._echo}
268
+ if dialect == "sqlite":
269
+ arguments["module"] = sqlite3.dbapi2
270
+ arguments["listeners"] = [_SQLitePatch()]
267
271
  if creator is not None:
268
- arguments['creator'] = creator
272
+ arguments["creator"] = creator
269
273
 
270
274
  # Load the database engine.
271
275
  engine = create_engine(url, **arguments)
272
276
 
273
277
  # Create a new session.
274
- session = self._new_session(bind = engine)
278
+ session = self._new_session(bind=engine)
275
279
 
276
280
  # Create the required tables if they don't exist.
277
281
  BaseDTO.metadata.create_all(engine)
278
282
  # TODO: create a dialect specific index on the "signature" column.
279
283
 
280
284
  # Set the instance properties.
281
- self._url = parsed_url
282
- self._driver = driver
285
+ self._url = parsed_url
286
+ self._driver = driver
283
287
  self._dialect = dialect
284
288
  self._session = session
285
289
 
@@ -299,7 +303,7 @@ class BaseDAO (object):
299
303
 
300
304
  @raise Exception: Any exception raised by the method.
301
305
  """
302
- self._session.begin(subtransactions = True)
306
+ self._session.begin(subtransactions=True)
303
307
  try:
304
308
  result = method(self, *argv, **argd)
305
309
  self._session.commit()
@@ -308,7 +312,9 @@ class BaseDAO (object):
308
312
  self._session.rollback()
309
313
  raise
310
314
 
311
- #------------------------------------------------------------------------------
315
+
316
+ # ------------------------------------------------------------------------------
317
+
312
318
 
313
319
  @decorator
314
320
  def Transactional(fn, self, *argv, **argd):
@@ -319,7 +325,9 @@ def Transactional(fn, self, *argv, **argd):
319
325
  """
320
326
  return self._transactional(fn, *argv, **argd)
321
327
 
322
- #==============================================================================
328
+
329
+ # ==============================================================================
330
+
323
331
 
324
332
  # Generates all possible memory access flags.
325
333
  def _gen_valid_access_flags():
@@ -330,19 +338,17 @@ def _gen_valid_access_flags():
330
338
  for a4 in ("W", "-"):
331
339
  f.append("%s %s%s%s" % (a1, a2, a3, a4))
332
340
  return tuple(f)
341
+
342
+
333
343
  _valid_access_flags = _gen_valid_access_flags()
334
344
 
335
345
  # Enumerated types for the memory table.
336
- n_MEM_ACCESS_ENUM = {"name" : "MEM_ACCESS_ENUM"}
337
- n_MEM_ALLOC_ACCESS_ENUM = {"name" : "MEM_ALLOC_ACCESS_ENUM"}
338
- MEM_ACCESS_ENUM = Enum(*_valid_access_flags,
339
- **n_MEM_ACCESS_ENUM)
340
- MEM_ALLOC_ACCESS_ENUM = Enum(*_valid_access_flags,
341
- **n_MEM_ALLOC_ACCESS_ENUM)
342
- MEM_STATE_ENUM = Enum("Reserved", "Commited", "Free", "Unknown",
343
- name = "MEM_STATE_ENUM")
344
- MEM_TYPE_ENUM = Enum("Image", "Mapped", "Private", "Unknown",
345
- name = "MEM_TYPE_ENUM")
346
+ n_MEM_ACCESS_ENUM = {"name": "MEM_ACCESS_ENUM"}
347
+ n_MEM_ALLOC_ACCESS_ENUM = {"name": "MEM_ALLOC_ACCESS_ENUM"}
348
+ MEM_ACCESS_ENUM = Enum(*_valid_access_flags, **n_MEM_ACCESS_ENUM)
349
+ MEM_ALLOC_ACCESS_ENUM = Enum(*_valid_access_flags, **n_MEM_ALLOC_ACCESS_ENUM)
350
+ MEM_STATE_ENUM = Enum("Reserved", "Commited", "Free", "Unknown", name="MEM_STATE_ENUM")
351
+ MEM_TYPE_ENUM = Enum("Image", "Mapped", "Private", "Unknown", name="MEM_TYPE_ENUM")
346
352
 
347
353
  # Cleanup the namespace.
348
354
  del _gen_valid_access_flags
@@ -350,30 +356,27 @@ del _valid_access_flags
350
356
  del n_MEM_ACCESS_ENUM
351
357
  del n_MEM_ALLOC_ACCESS_ENUM
352
358
 
353
- #------------------------------------------------------------------------------
359
+ # ------------------------------------------------------------------------------
360
+
354
361
 
355
- class MemoryDTO (BaseDTO):
362
+ class MemoryDTO(BaseDTO):
356
363
  """
357
364
  Database mapping for memory dumps.
358
365
  """
359
366
 
360
367
  # Declare the table mapping.
361
- __tablename__ = 'memory'
362
- id = Column(Integer, Sequence(__tablename__ + '_seq'),
363
- primary_key = True, autoincrement = True)
364
- crash_id = Column(Integer, ForeignKey('crashes.id',
365
- ondelete = 'CASCADE',
366
- onupdate = 'CASCADE'),
367
- nullable = False)
368
- address = Column(BigInteger, nullable = False, index = True)
369
- size = Column(BigInteger, nullable = False)
370
- state = Column(MEM_STATE_ENUM, nullable = False)
371
- access = Column(MEM_ACCESS_ENUM)
372
- type = Column(MEM_TYPE_ENUM)
373
- alloc_base = Column(BigInteger)
374
- alloc_access = Column(MEM_ALLOC_ACCESS_ENUM)
375
- filename = Column(String)
376
- content = deferred(Column(LargeBinary))
368
+ __tablename__ = "memory"
369
+ id = Column(Integer, Sequence(__tablename__ + "_seq"), primary_key=True, autoincrement=True)
370
+ crash_id = Column(Integer, ForeignKey("crashes.id", ondelete="CASCADE", onupdate="CASCADE"), nullable=False)
371
+ address = Column(BigInteger, nullable=False, index=True)
372
+ size = Column(BigInteger, nullable=False)
373
+ state = Column(MEM_STATE_ENUM, nullable=False)
374
+ access = Column(MEM_ACCESS_ENUM)
375
+ type = Column(MEM_TYPE_ENUM)
376
+ alloc_base = Column(BigInteger)
377
+ alloc_access = Column(MEM_ALLOC_ACCESS_ENUM)
378
+ filename = Column(String)
379
+ content = deferred(Column(LargeBinary))
377
380
 
378
381
  def __init__(self, crash_id, mbi):
379
382
  """
@@ -390,7 +393,7 @@ class MemoryDTO (BaseDTO):
390
393
  self.size = mbi.RegionSize
391
394
 
392
395
  # State (free or allocated).
393
- if mbi.State == win32.MEM_RESERVE:
396
+ if mbi.State == win32.MEM_RESERVE:
394
397
  self.state = "Reserved"
395
398
  elif mbi.State == win32.MEM_COMMIT:
396
399
  self.state = "Commited"
@@ -406,7 +409,7 @@ class MemoryDTO (BaseDTO):
406
409
  self.access = self._to_access(mbi.Protect)
407
410
 
408
411
  # Type (file mapping, executable image, or private memory).
409
- if mbi.Type == win32.MEM_IMAGE:
412
+ if mbi.Type == win32.MEM_IMAGE:
410
413
  self.type = "Image"
411
414
  elif mbi.Type == win32.MEM_MAPPED:
412
415
  self.type = "Mapped"
@@ -418,7 +421,7 @@ class MemoryDTO (BaseDTO):
418
421
  self.type = "Unknown"
419
422
 
420
423
  # Allocation info.
421
- self.alloc_base = mbi.AllocationBase
424
+ self.alloc_base = mbi.AllocationBase
422
425
  if not mbi.AllocationProtect:
423
426
  self.alloc_access = None
424
427
  else:
@@ -437,7 +440,7 @@ class MemoryDTO (BaseDTO):
437
440
  self.content = None
438
441
 
439
442
  def _to_access(self, protect):
440
- if protect & win32.PAGE_NOACCESS:
443
+ if protect & win32.PAGE_NOACCESS:
441
444
  access = "--- "
442
445
  elif protect & win32.PAGE_READONLY:
443
446
  access = "R-- "
@@ -455,21 +458,21 @@ class MemoryDTO (BaseDTO):
455
458
  access = "RCX "
456
459
  else:
457
460
  access = "??? "
458
- if protect & win32.PAGE_GUARD:
461
+ if protect & win32.PAGE_GUARD:
459
462
  access += "G"
460
463
  else:
461
464
  access += "-"
462
- if protect & win32.PAGE_NOCACHE:
465
+ if protect & win32.PAGE_NOCACHE:
463
466
  access += "N"
464
467
  else:
465
468
  access += "-"
466
- if protect & win32.PAGE_WRITECOMBINE:
469
+ if protect & win32.PAGE_WRITECOMBINE:
467
470
  access += "W"
468
471
  else:
469
472
  access += "-"
470
473
  return access
471
474
 
472
- def toMBI(self, getMemoryDump = False):
475
+ def toMBI(self, getMemoryDump=False):
473
476
  """
474
477
  Returns a L{win32.MemoryBasicInformation} object using the data
475
478
  retrieved from the database.
@@ -483,10 +486,10 @@ class MemoryDTO (BaseDTO):
483
486
  """
484
487
  mbi = win32.MemoryBasicInformation()
485
488
  mbi.BaseAddress = self.address
486
- mbi.RegionSize = self.size
487
- mbi.State = self._parse_state(self.state)
488
- mbi.Protect = self._parse_access(self.access)
489
- mbi.Type = self._parse_type(self.type)
489
+ mbi.RegionSize = self.size
490
+ mbi.State = self._parse_state(self.state)
491
+ mbi.Protect = self._parse_access(self.access)
492
+ mbi.Type = self._parse_type(self.type)
490
493
  if self.alloc_base is not None:
491
494
  mbi.AllocationBase = self.alloc_base
492
495
  else:
@@ -498,7 +501,7 @@ class MemoryDTO (BaseDTO):
498
501
  if self.filename is not None:
499
502
  mbi.filename = self.filename
500
503
  if getMemoryDump and self.content is not None:
501
- mbi.content = self.content
504
+ mbi.content = self.content
502
505
  return mbi
503
506
 
504
507
  @staticmethod
@@ -529,7 +532,7 @@ class MemoryDTO (BaseDTO):
529
532
  if not access:
530
533
  return 0
531
534
  perm = access[:3]
532
- if perm == "R--":
535
+ if perm == "R--":
533
536
  protect = win32.PAGE_READONLY
534
537
  elif perm == "RW-":
535
538
  protect = win32.PAGE_READWRITE
@@ -553,9 +556,11 @@ class MemoryDTO (BaseDTO):
553
556
  protect = protect | win32.PAGE_WRITECOMBINE
554
557
  return protect
555
558
 
556
- #------------------------------------------------------------------------------
557
559
 
558
- class CrashDTO (BaseDTO):
560
+ # ------------------------------------------------------------------------------
561
+
562
+
563
+ class CrashDTO(BaseDTO):
559
564
  """
560
565
  Database mapping for crash dumps.
561
566
  """
@@ -564,31 +569,30 @@ class CrashDTO (BaseDTO):
564
569
  __tablename__ = "crashes"
565
570
 
566
571
  # Primary key.
567
- id = Column(Integer, Sequence(__tablename__ + '_seq'),
568
- primary_key = True, autoincrement = True)
572
+ id = Column(Integer, Sequence(__tablename__ + "_seq"), primary_key=True, autoincrement=True)
569
573
 
570
574
  # Timestamp.
571
- timestamp = Column(DateTime, nullable = False, index = True)
575
+ timestamp = Column(DateTime, nullable=False, index=True)
572
576
 
573
577
  # Exploitability test.
574
- exploitable = Column(Integer, nullable = False)
575
- exploitability_rule = Column(String(32), nullable = False)
576
- exploitability_rating = Column(String(32), nullable = False)
577
- exploitability_desc = Column(String, nullable = False)
578
+ exploitable = Column(Integer, nullable=False)
579
+ exploitability_rule = Column(String(32), nullable=False)
580
+ exploitability_rating = Column(String(32), nullable=False)
581
+ exploitability_desc = Column(String, nullable=False)
578
582
 
579
583
  # Platform description.
580
- os = Column(String(32), nullable = False)
581
- arch = Column(String(16), nullable = False)
582
- bits = Column(Integer, nullable = False) # Integer(4) is deprecated :(
584
+ os = Column(String(32), nullable=False)
585
+ arch = Column(String(16), nullable=False)
586
+ bits = Column(Integer, nullable=False) # Integer(4) is deprecated :(
583
587
 
584
588
  # Event description.
585
- event = Column(String, nullable = False)
586
- pid = Column(Integer, nullable = False)
587
- tid = Column(Integer, nullable = False)
588
- pc = Column(BigInteger, nullable = False)
589
- sp = Column(BigInteger, nullable = False)
590
- fp = Column(BigInteger, nullable = False)
591
- pc_label = Column(String, nullable = False)
589
+ event = Column(String, nullable=False)
590
+ pid = Column(Integer, nullable=False)
591
+ tid = Column(Integer, nullable=False)
592
+ pc = Column(BigInteger, nullable=False)
593
+ sp = Column(BigInteger, nullable=False)
594
+ fp = Column(BigInteger, nullable=False)
595
+ pc_label = Column(String, nullable=False)
592
596
 
593
597
  # Exception description.
594
598
  exception = Column(String(64))
@@ -613,10 +617,10 @@ class CrashDTO (BaseDTO):
613
617
  notes = Column(String)
614
618
 
615
619
  # Heuristic signature.
616
- signature = Column(String, nullable = False)
620
+ signature = Column(String, nullable=False)
617
621
 
618
622
  # Pickled Crash object, minus the memory dump.
619
- data = deferred(Column(LargeBinary, nullable = False))
623
+ data = deferred(Column(LargeBinary, nullable=False))
620
624
 
621
625
  def __init__(self, crash):
622
626
  """
@@ -625,60 +629,56 @@ class CrashDTO (BaseDTO):
625
629
  """
626
630
 
627
631
  # Timestamp and signature.
628
- self.timestamp = datetime.datetime.fromtimestamp( crash.timeStamp )
629
- self.signature = pickle.dumps(crash.signature, protocol = 0)
632
+ self.timestamp = datetime.datetime.fromtimestamp(crash.timeStamp)
633
+ self.signature = pickle.dumps(crash.signature, protocol=0)
630
634
 
631
635
  # Marshalled Crash object, minus the memory dump.
632
636
  # This code is *not* thread safe!
633
637
  memoryMap = crash.memoryMap
634
638
  try:
635
639
  crash.memoryMap = None
636
- self.data = buffer( Marshaller.dumps(crash) )
640
+ self.data = buffer(Marshaller.dumps(crash))
637
641
  finally:
638
642
  crash.memoryMap = memoryMap
639
643
 
640
644
  # Exploitability test.
641
- self.exploitability_rating, \
642
- self.exploitability_rule, \
643
- self.exploitability_desc = crash.isExploitable()
645
+ self.exploitability_rating, self.exploitability_rule, self.exploitability_desc = crash.isExploitable()
644
646
 
645
647
  # Exploitability test as an integer result (for sorting).
646
648
  self.exploitable = [
647
- "Not an exception",
648
- "Not exploitable",
649
- "Not likely exploitable",
650
- "Unknown",
651
- "Probably exploitable",
652
- "Exploitable",
653
- ].index(self.exploitability_rating)
649
+ "Not an exception",
650
+ "Not exploitable",
651
+ "Not likely exploitable",
652
+ "Unknown",
653
+ "Probably exploitable",
654
+ "Exploitable",
655
+ ].index(self.exploitability_rating)
654
656
 
655
657
  # Platform description.
656
- self.os = crash.os
658
+ self.os = crash.os
657
659
  self.arch = crash.arch
658
660
  self.bits = crash.bits
659
661
 
660
662
  # Event description.
661
- self.event = crash.eventName
662
- self.pid = crash.pid
663
- self.tid = crash.tid
664
- self.pc = crash.pc
665
- self.sp = crash.sp
666
- self.fp = crash.fp
663
+ self.event = crash.eventName
664
+ self.pid = crash.pid
665
+ self.tid = crash.tid
666
+ self.pc = crash.pc
667
+ self.sp = crash.sp
668
+ self.fp = crash.fp
667
669
  self.pc_label = crash.labelPC
668
670
 
669
671
  # Exception description.
670
- self.exception = crash.exceptionName
671
- self.exception_text = crash.exceptionDescription
672
+ self.exception = crash.exceptionName
673
+ self.exception_text = crash.exceptionDescription
672
674
  self.exception_address = crash.exceptionAddress
673
- self.exception_label = crash.exceptionLabel
674
- self.first_chance = crash.firstChance
675
- self.fault_type = crash.faultType
676
- self.fault_address = crash.faultAddress
677
- self.fault_label = crash.faultLabel
678
- self.fault_disasm = CrashDump.dump_code( crash.faultDisasm,
679
- crash.pc )
680
- self.stack_trace = CrashDump.dump_stack_trace_with_labels(
681
- crash.stackTracePretty )
675
+ self.exception_label = crash.exceptionLabel
676
+ self.first_chance = crash.firstChance
677
+ self.fault_type = crash.faultType
678
+ self.fault_address = crash.faultAddress
679
+ self.fault_label = crash.faultLabel
680
+ self.fault_disasm = CrashDump.dump_code(crash.faultDisasm, crash.pc)
681
+ self.stack_trace = CrashDump.dump_stack_trace_with_labels(crash.stackTracePretty)
682
682
 
683
683
  # Command line.
684
684
  self.command_line = crash.commandLine
@@ -687,11 +687,11 @@ class CrashDTO (BaseDTO):
687
687
  if crash.environment:
688
688
  envList = crash.environment.items()
689
689
  envList.sort()
690
- environment = ''
690
+ environment = ""
691
691
  for envKey, envVal in envList:
692
692
  # Must concatenate here instead of using a substitution,
693
693
  # so strings can be automatically promoted to Unicode.
694
- environment += envKey + '=' + envVal + '\n'
694
+ environment += envKey + "=" + envVal + "\n"
695
695
  if environment:
696
696
  self.environment = environment
697
697
 
@@ -701,7 +701,7 @@ class CrashDTO (BaseDTO):
701
701
  # Notes.
702
702
  self.notes = crash.notesReport()
703
703
 
704
- def toCrash(self, getMemoryDump = False):
704
+ def toCrash(self, getMemoryDump=False):
705
705
  """
706
706
  Returns a L{Crash} object using the data retrieved from the database.
707
707
 
@@ -714,8 +714,7 @@ class CrashDTO (BaseDTO):
714
714
  """
715
715
  crash = Marshaller.loads(str(self.data))
716
716
  if not isinstance(crash, Crash):
717
- raise TypeError(
718
- "Expected Crash instance, got %s instead" % type(crash))
717
+ raise TypeError("Expected Crash instance, got %s instead" % type(crash))
719
718
  crash._rowid = self.id
720
719
  if not crash.memoryMap:
721
720
  memory = getattr(self, "memory", [])
@@ -723,18 +722,20 @@ class CrashDTO (BaseDTO):
723
722
  crash.memoryMap = [dto.toMBI(getMemoryDump) for dto in memory]
724
723
  return crash
725
724
 
726
- #==============================================================================
725
+
726
+ # ==============================================================================
727
727
 
728
728
  # TODO: add a method to modify already stored crash dumps.
729
729
 
730
- class CrashDAO (BaseDAO):
730
+
731
+ class CrashDAO(BaseDAO):
731
732
  """
732
733
  Data Access Object to read, write and search for L{Crash} objects in a
733
734
  database.
734
735
  """
735
736
 
736
737
  @Transactional
737
- def add(self, crash, allow_duplicates = True):
738
+ def add(self, crash, allow_duplicates=True):
738
739
  """
739
740
  Add a new crash dump to the database, optionally filtering them by
740
741
  signature to avoid duplicates.
@@ -757,10 +758,8 @@ class CrashDAO (BaseDAO):
757
758
 
758
759
  # Filter out duplicated crashes, if requested.
759
760
  if not allow_duplicates:
760
- signature = pickle.dumps(crash.signature, protocol = 0)
761
- if self._session.query(CrashDTO.id) \
762
- .filter_by(signature = signature) \
763
- .count() > 0:
761
+ signature = pickle.dumps(crash.signature, protocol=0)
762
+ if self._session.query(CrashDTO.id).filter_by(signature=signature).count() > 0:
764
763
  return
765
764
 
766
765
  # Fill out a new row for the crashes table.
@@ -779,7 +778,6 @@ class CrashDAO (BaseDAO):
779
778
  session = self._session
780
779
  r_crash = None
781
780
  try:
782
-
783
781
  # Fill out a new row for the crashes table.
784
782
  r_crash = CrashDTO(crash)
785
783
  session.add(r_crash)
@@ -790,13 +788,11 @@ class CrashDAO (BaseDAO):
790
788
 
791
789
  finally:
792
790
  try:
793
-
794
791
  # Make the ORM forget the CrashDTO object.
795
792
  if r_crash is not None:
796
793
  session.expire(r_crash)
797
794
 
798
795
  finally:
799
-
800
796
  # Delete the last reference to the CrashDTO
801
797
  # object, so the Python garbage collector claims it.
802
798
  del r_crash
@@ -814,10 +810,7 @@ class CrashDAO (BaseDAO):
814
810
  session.flush()
815
811
 
816
812
  @Transactional
817
- def find(self,
818
- signature = None, order = 0,
819
- since = None, until = None,
820
- offset = None, limit = None):
813
+ def find(self, signature=None, order=0, since=None, until=None, offset=None, limit=None):
821
814
  """
822
815
  Retrieve all crash dumps in the database, optionally filtering them by
823
816
  signature and timestamp, and/or sorting them by timestamp.
@@ -857,18 +850,16 @@ class CrashDAO (BaseDAO):
857
850
 
858
851
  # Validate the parameters.
859
852
  if since and until and since > until:
860
- warnings.warn("CrashDAO.find() got the 'since' and 'until'"
861
- " arguments reversed, corrected automatically.")
853
+ warnings.warn("CrashDAO.find() got the 'since' and 'until'" " arguments reversed, corrected automatically.")
862
854
  since, until = until, since
863
855
  if limit is not None and not limit:
864
- warnings.warn("CrashDAO.find() was set a limit of 0 results,"
865
- " returning without executing a query.")
856
+ warnings.warn("CrashDAO.find() was set a limit of 0 results," " returning without executing a query.")
866
857
  return []
867
858
 
868
859
  # Build the SQL query.
869
860
  query = self._session.query(CrashDTO)
870
861
  if signature is not None:
871
- sig_pickled = pickle.dumps(signature, protocol = 0)
862
+ sig_pickled = pickle.dumps(signature, protocol=0)
872
863
  query = query.filter(CrashDTO.signature == sig_pickled)
873
864
  if since:
874
865
  query = query.filter(CrashDTO.timestamp >= since)
@@ -895,7 +886,7 @@ class CrashDAO (BaseDAO):
895
886
  return []
896
887
 
897
888
  @Transactional
898
- def find_by_example(self, crash, offset = None, limit = None):
889
+ def find_by_example(self, crash, offset=None, limit=None):
899
890
  """
900
891
  Find all crash dumps that have common properties with the crash dump
901
892
  provided.
@@ -924,8 +915,7 @@ class CrashDAO (BaseDAO):
924
915
 
925
916
  # Validate the parameters.
926
917
  if limit is not None and not limit:
927
- warnings.warn("CrashDAO.find_by_example() was set a limit of 0"
928
- " results, returning without executing a query.")
918
+ warnings.warn("CrashDAO.find_by_example() was set a limit of 0" " results, returning without executing a query.")
929
919
  return []
930
920
 
931
921
  # Build the query.
@@ -941,9 +931,7 @@ class CrashDAO (BaseDAO):
941
931
  # Filter all the fields in the crashes table that are present in the
942
932
  # CrashDTO object and not set to None, except for the row ID.
943
933
  for name, column in compat.iteritems(CrashDTO.__dict__):
944
- if not name.startswith('__') and name not in ('id',
945
- 'signature',
946
- 'data'):
934
+ if not name.startswith("__") and name not in ("id", "signature", "data"):
947
935
  if isinstance(column, Column):
948
936
  value = getattr(dto, name, None)
949
937
  if value is not None:
@@ -962,7 +950,7 @@ class CrashDAO (BaseDAO):
962
950
  return []
963
951
 
964
952
  @Transactional
965
- def count(self, signature = None):
953
+ def count(self, signature=None):
966
954
  """
967
955
  Counts how many crash dumps have been stored in this database.
968
956
  Optionally filters the count by heuristic signature.
@@ -976,8 +964,8 @@ class CrashDAO (BaseDAO):
976
964
  """
977
965
  query = self._session.query(CrashDTO.id)
978
966
  if signature:
979
- sig_pickled = pickle.dumps(signature, protocol = 0)
980
- query = query.filter_by(signature = sig_pickled)
967
+ sig_pickled = pickle.dumps(signature, protocol=0)
968
+ query = query.filter_by(signature=sig_pickled)
981
969
  return query.count()
982
970
 
983
971
  @Transactional
@@ -988,6 +976,6 @@ class CrashDAO (BaseDAO):
988
976
  @type crash: L{Crash}
989
977
  @param crash: Crash dump to remove.
990
978
  """
991
- query = self._session.query(CrashDTO).filter_by(id = crash._rowid)
992
- query.delete(synchronize_session = False)
979
+ query = self._session.query(CrashDTO).filter_by(id=crash._rowid)
980
+ query.delete(synchronize_session=False)
993
981
  del crash._rowid