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.
- {debugpy-1.8.5/src/debugpy.egg-info → debugpy-1.8.7}/PKG-INFO +1 -1
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydev_bundle/_pydev_calltip_util.py +19 -21
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydev_bundle/_pydev_completer.py +30 -30
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydev_bundle/_pydev_execfile.py +3 -1
- debugpy-1.8.7/src/debugpy/_vendored/pydevd/_pydev_bundle/_pydev_filesystem_encoding.py +43 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydev_bundle/_pydev_getopt.py +35 -32
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydev_bundle/_pydev_imports_tipper.py +83 -84
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydev_bundle/_pydev_jy_imports_tipper.py +92 -99
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydev_bundle/_pydev_log.py +2 -3
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydev_bundle/_pydev_saved_modules.py +51 -27
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydev_bundle/_pydev_sys_patch.py +11 -7
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydev_bundle/_pydev_tipper_common.py +6 -5
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydev_bundle/fsnotify/__init__.py +34 -38
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydev_bundle/pydev_console_utils.py +71 -69
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydev_bundle/pydev_import_hook.py +1 -3
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydev_bundle/pydev_imports.py +0 -1
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydev_bundle/pydev_ipython_console.py +14 -16
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydev_bundle/pydev_ipython_console_011.py +81 -93
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydev_bundle/pydev_is_thread_alive.py +3 -3
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydev_bundle/pydev_localhost.py +9 -8
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydev_bundle/pydev_log.py +33 -25
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydev_bundle/pydev_monkey.py +183 -170
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydev_bundle/pydev_monkey_qt.py +33 -29
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydev_bundle/pydev_override.py +6 -4
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydev_bundle/pydev_umd.py +19 -18
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydev_bundle/pydev_versioncheck.py +3 -3
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydev_runfiles/pydev_runfiles.py +165 -138
- debugpy-1.8.7/src/debugpy/_vendored/pydevd/_pydev_runfiles/pydev_runfiles_coverage.py +77 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydev_runfiles/pydev_runfiles_nose.py +35 -36
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydev_runfiles/pydev_runfiles_parallel.py +22 -23
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydev_runfiles/pydev_runfiles_parallel_client.py +37 -57
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydev_runfiles/pydev_runfiles_pytest2.py +54 -52
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydev_runfiles/pydev_runfiles_unittest.py +28 -37
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydev_runfiles/pydev_runfiles_xml_rpc.py +56 -53
- debugpy-1.8.7/src/debugpy/_vendored/pydevd/_pydevd_bundle/_debug_adapter/__main__pydevd_gen_debug_adapter_protocol.py +604 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/_debug_adapter/debugProtocol.json +551 -445
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/_debug_adapter/pydevd_base_schema.py +25 -29
- debugpy-1.8.7/src/debugpy/_vendored/pydevd/_pydevd_bundle/_debug_adapter/pydevd_schema.py +17458 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/_debug_adapter/pydevd_schema_log.py +11 -12
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevconsole_code.py +18 -19
- debugpy-1.8.7/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_additional_thread_info.py +41 -0
- debugpy-1.8.7/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_additional_thread_info_regular.py +328 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_api.py +263 -214
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_breakpoints.py +7 -10
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_bytecode_utils.py +187 -92
- debugpy-1.8.7/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_bytecode_utils_py311.py +105 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_code_to_source.py +46 -51
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_collect_bytecode_info.py +239 -176
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_comm.py +370 -297
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_comm_constants.py +78 -86
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_command_line_handling.py +55 -59
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_concurrency_analyser/pydevd_concurrency_logger.py +194 -58
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_concurrency_analyser/pydevd_thread_wrappers.py +2 -3
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_console.py +18 -23
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_constants.py +159 -127
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_custom_frames.py +10 -12
- debugpy-1.8.7/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_cython.c +55527 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_cython.pxd +15 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_cython.pyx +803 -511
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_cython_wrapper.py +18 -7
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_daemon_thread.py +32 -24
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_defaults.py +11 -13
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_dont_trace.py +16 -16
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_dont_trace_files.py +27 -2
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_exec2.py +1 -1
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_extension_api.py +4 -5
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_extension_utils.py +8 -10
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_filtering.py +50 -45
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_frame.py +462 -407
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_frame_utils.py +69 -61
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_gevent_integration.py +14 -16
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_import_class.py +27 -25
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_io.py +40 -42
- debugpy-1.8.7/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_json_debug_options.py +200 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_net_command.py +20 -19
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_net_command_factory_json.py +199 -108
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_net_command_factory_xml.py +121 -73
- debugpy-1.8.7/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_plugin_utils.py +208 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_process_net_command.py +206 -159
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_process_net_command_json.py +346 -334
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_referrers.py +75 -80
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_reload.py +35 -35
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_resolver.py +116 -124
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_runpy.py +44 -58
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_safe_repr.py +51 -55
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_save_locals.py +4 -2
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_signature.py +24 -24
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_source_mapping.py +19 -20
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_stackless.py +45 -49
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_suspended_frames.py +61 -58
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_thread_lifecycle.py +23 -13
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_timeout.py +29 -31
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_trace_dispatch.py +41 -11
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_trace_dispatch_regular.py +117 -55
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_traceproperty.py +11 -14
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_utils.py +90 -89
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_vars.py +106 -97
- debugpy-1.8.7/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_vm_type.py +40 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_xml.py +56 -46
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/pydevd_frame_eval_cython_wrapper.py +5 -5
- debugpy-1.8.7/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/pydevd_frame_eval_main.py +71 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/pydevd_frame_evaluator.c +11165 -5326
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/pydevd_frame_tracing.py +5 -6
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/pydevd_modify_bytecode.py +53 -56
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode/__init__.py +1 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode/bytecode.py +4 -6
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode/cfg.py +6 -26
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode/concrete.py +7 -21
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode/flags.py +5 -24
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode/instr.py +10 -34
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode/peephole_opt.py +1 -4
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode/tests/__init__.py +2 -6
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode/tests/test_bytecode.py +3 -5
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode/tests/test_cfg.py +11 -31
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode/tests/test_code.py +2 -2
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode/tests/test_concrete.py +14 -41
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode/tests/test_flags.py +2 -4
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode/tests/test_instr.py +7 -18
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode/tests/test_misc.py +6 -18
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode/tests/test_peephole_opt.py +7 -18
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode/tests/util_annotation.py +1 -3
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/pydevd_fix_code.py +14 -19
- debugpy-1.8.7/src/debugpy/_vendored/pydevd/_pydevd_sys_monitoring/_pydevd_sys_monitoring.py +1929 -0
- debugpy-1.8.7/src/debugpy/_vendored/pydevd/_pydevd_sys_monitoring/_pydevd_sys_monitoring_cython.c +43253 -0
- debugpy-1.8.7/src/debugpy/_vendored/pydevd/_pydevd_sys_monitoring/_pydevd_sys_monitoring_cython.pxd +46 -0
- debugpy-1.8.7/src/debugpy/_vendored/pydevd/_pydevd_sys_monitoring/_pydevd_sys_monitoring_cython.pyx +1935 -0
- debugpy-1.8.7/src/debugpy/_vendored/pydevd/_pydevd_sys_monitoring/pydevd_sys_monitoring.py +16 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydev_app_engine_debug_startup.py +12 -11
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydev_coverage.py +30 -32
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydev_ipython/inputhook.py +58 -54
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydev_ipython/inputhookglut.py +20 -24
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydev_ipython/inputhookgtk.py +8 -7
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydev_ipython/inputhookgtk3.py +8 -6
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydev_ipython/inputhookpyglet.py +11 -8
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydev_ipython/inputhookqt4.py +21 -18
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydev_ipython/inputhookqt5.py +17 -15
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydev_ipython/inputhookqt6.py +17 -15
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydev_ipython/inputhooktk.py +6 -4
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydev_ipython/inputhookwx.py +14 -10
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydev_ipython/matplotlibtools.py +30 -26
- debugpy-1.8.7/src/debugpy/_vendored/pydevd/pydev_ipython/qt.py +24 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydev_ipython/qt_for_kernel.py +37 -34
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydev_ipython/qt_loaders.py +86 -73
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydev_ipython/version.py +7 -7
- debugpy-1.8.7/src/debugpy/_vendored/pydevd/pydev_pysrc.py +1 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydev_run_in_console.py +23 -24
- debugpy-1.8.7/src/debugpy/_vendored/pydevd/pydev_sitecustomize/sitecustomize.py +267 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevconsole.py +55 -47
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd.py +732 -508
- debugpy-1.8.7/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/_always_live_program.py +40 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/_check.py +1 -0
- debugpy-1.8.7/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/_test_attach_to_process.py +11 -0
- debugpy-1.8.7/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/_test_attach_to_process_linux.py +75 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/add_code_to_python_process.py +130 -125
- debugpy-1.8.7/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/attach_amd64.dll +0 -0
- debugpy-1.8.7/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/attach_amd64.pdb +0 -0
- debugpy-1.8.7/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/attach_pydevd.py +89 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/attach_script.py +41 -32
- debugpy-1.8.7/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/attach_x86.dll +0 -0
- debugpy-1.8.7/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/attach_x86.pdb +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/common/py_utils.hpp +1 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/common/py_version.hpp +9 -1
- debugpy-1.8.7/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/inject_dll_amd64.exe +0 -0
- debugpy-1.8.7/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/inject_dll_amd64.pdb +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/inject_dll_x86.exe +0 -0
- debugpy-1.8.7/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/inject_dll_x86.pdb +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/linux_and_mac/lldb_prepare.py +10 -9
- debugpy-1.8.7/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/run_code_on_dllmain_amd64.dll +0 -0
- debugpy-1.8.7/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/run_code_on_dllmain_amd64.pdb +0 -0
- debugpy-1.8.7/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/run_code_on_dllmain_x86.dll +0 -0
- debugpy-1.8.7/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/run_code_on_dllmain_x86.pdb +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/__init__.py +103 -119
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/breakpoint.py +457 -516
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/compat.py +33 -15
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/crash.py +336 -281
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/debug.py +101 -131
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/disasm.py +148 -153
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/event.py +310 -302
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/interactive.py +235 -208
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/module.py +185 -218
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/process.py +428 -564
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/registry.py +54 -53
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/search.py +69 -73
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/sql.py +158 -170
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/system.py +143 -213
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/textio.py +302 -333
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/thread.py +220 -239
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/util.py +198 -177
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/win32/__init__.py +11 -11
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/win32/advapi32.py +1191 -713
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/win32/context_amd64.py +248 -194
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/win32/context_i386.py +132 -120
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/win32/dbghelp.py +450 -346
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/win32/defines.py +305 -286
- debugpy-1.8.7/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/win32/gdi32.py +526 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/win32/kernel32.py +1479 -1097
- debugpy-1.8.7/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/win32/ntdll.py +579 -0
- debugpy-1.8.7/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/win32/peb_teb.py +3517 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/win32/psapi.py +54 -31
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/win32/shell32.py +170 -149
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/win32/shlwapi.py +190 -108
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/win32/user32.py +542 -437
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/win32/version.py +489 -442
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/win32/wtsapi32.py +83 -65
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/window.py +70 -76
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/windows/attach.cpp +17 -9
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/windows/compile_windows.bat +1 -1
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_file_utils.py +141 -120
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_plugins/__init__.py +1 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_plugins/django_debug.py +175 -149
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_plugins/extensions/__init__.py +1 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_plugins/extensions/types/__init__.py +1 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_plugins/extensions/types/pydevd_helpers.py +5 -5
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_plugins/extensions/types/pydevd_plugin_numpy_types.py +28 -28
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_plugins/extensions/types/pydevd_plugin_pandas_types.py +22 -30
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_plugins/extensions/types/pydevd_plugins_django_form_str.py +3 -2
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_plugins/jinja2_debug.py +130 -108
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_plugins/pydevd_line_validation.py +27 -14
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_tracing.py +85 -66
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/setup_pydevd_cython.py +96 -59
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_version.py +3 -3
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/common/messaging.py +2 -1
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/server/cli.py +32 -17
- {debugpy-1.8.5 → debugpy-1.8.7/src/debugpy.egg-info}/PKG-INFO +1 -1
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy.egg-info/SOURCES.txt +6 -1
- debugpy-1.8.5/src/debugpy/_vendored/pydevd/_pydev_bundle/_pydev_filesystem_encoding.py +0 -41
- debugpy-1.8.5/src/debugpy/_vendored/pydevd/_pydev_runfiles/pydev_runfiles_coverage.py +0 -76
- debugpy-1.8.5/src/debugpy/_vendored/pydevd/_pydevd_bundle/_debug_adapter/__main__pydevd_gen_debug_adapter_protocol.py +0 -592
- debugpy-1.8.5/src/debugpy/_vendored/pydevd/_pydevd_bundle/_debug_adapter/pydevd_schema.py +0 -19514
- debugpy-1.8.5/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_additional_thread_info.py +0 -19
- debugpy-1.8.5/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_additional_thread_info_regular.py +0 -153
- debugpy-1.8.5/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_cython.c +0 -43377
- debugpy-1.8.5/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_json_debug_options.py +0 -204
- debugpy-1.8.5/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_plugin_utils.py +0 -91
- debugpy-1.8.5/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_trace_api.py +0 -62
- debugpy-1.8.5/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_vm_type.py +0 -41
- debugpy-1.8.5/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/pydevd_frame_eval_main.py +0 -48
- debugpy-1.8.5/src/debugpy/_vendored/pydevd/pydev_ipython/qt.py +0 -23
- debugpy-1.8.5/src/debugpy/_vendored/pydevd/pydev_pysrc.py +0 -1
- debugpy-1.8.5/src/debugpy/_vendored/pydevd/pydev_sitecustomize/sitecustomize.py +0 -237
- debugpy-1.8.5/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/_always_live_program.py +0 -32
- debugpy-1.8.5/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/_test_attach_to_process.py +0 -9
- debugpy-1.8.5/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/_test_attach_to_process_linux.py +0 -74
- debugpy-1.8.5/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/attach_amd64.dll +0 -0
- debugpy-1.8.5/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/attach_amd64.pdb +0 -0
- debugpy-1.8.5/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/attach_pydevd.py +0 -79
- debugpy-1.8.5/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/attach_x86.dll +0 -0
- debugpy-1.8.5/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/attach_x86.pdb +0 -0
- debugpy-1.8.5/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/inject_dll_amd64.exe +0 -0
- debugpy-1.8.5/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/inject_dll_amd64.pdb +0 -0
- debugpy-1.8.5/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/inject_dll_x86.pdb +0 -0
- debugpy-1.8.5/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/run_code_on_dllmain_amd64.dll +0 -0
- debugpy-1.8.5/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/run_code_on_dllmain_amd64.pdb +0 -0
- debugpy-1.8.5/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/run_code_on_dllmain_x86.dll +0 -0
- debugpy-1.8.5/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/run_code_on_dllmain_x86.pdb +0 -0
- debugpy-1.8.5/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/win32/gdi32.py +0 -507
- debugpy-1.8.5/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/win32/ntdll.py +0 -539
- debugpy-1.8.5/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/win32/peb_teb.py +0 -3435
- {debugpy-1.8.5 → debugpy-1.8.7}/DESCRIPTION.md +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/LICENSE +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/MANIFEST.in +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/README.md +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/pyproject.toml +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/setup.cfg +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/setup.py +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/ThirdPartyNotices.txt +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/__init__.py +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/__main__.py +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/__init__.py +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/_pydevd_packaging.py +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/_util.py +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/force_pydevd.py +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydev_bundle/__init__.py +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydev_runfiles/__init__.py +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/__init__.py +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/_debug_adapter/__init__.py +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/_debug_adapter/debugProtocolCustom.json +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_concurrency_analyser/__init__.py +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/.gitignore +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/__init__.py +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/pydevd_frame_evaluator.pxd +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/pydevd_frame_evaluator.pyx +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/pydevd_frame_evaluator.template.pyx +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/release_mem.h +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/README.txt +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/__init__.py +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydev_ipython/README +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydev_ipython/__init__.py +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydev_sitecustomize/__not_in_default_pythonpath.txt +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/README.txt +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/common/py_custom_pyeval_settrace.hpp +0 -0
- {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
- {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
- {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
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/common/py_settrace.hpp +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/common/python.h +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/common/ref_utils.hpp +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/linux_and_mac/.gitignore +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/linux_and_mac/attach.cpp +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/linux_and_mac/compile_linux.sh +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/linux_and_mac/compile_mac.sh +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/linux_and_mac/compile_manylinux.cmd +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/windows/attach.h +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/windows/inject_dll.cpp +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/windows/py_win_helpers.hpp +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/windows/run_code_in_memory.hpp +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/windows/run_code_on_dllmain.cpp +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/windows/stdafx.cpp +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/windows/stdafx.h +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/windows/targetver.h +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_plugins/extensions/README.md +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/adapter/__init__.py +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/adapter/__main__.py +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/adapter/clients.py +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/adapter/components.py +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/adapter/launchers.py +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/adapter/servers.py +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/adapter/sessions.py +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/common/__init__.py +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/common/json.py +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/common/log.py +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/common/singleton.py +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/common/sockets.py +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/common/stacks.py +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/common/timestamp.py +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/common/util.py +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/launcher/__init__.py +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/launcher/__main__.py +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/launcher/debuggee.py +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/launcher/handlers.py +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/launcher/output.py +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/launcher/winapi.py +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/public_api.py +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/server/__init__.py +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/server/api.py +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/server/attach_pid_injected.py +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy.egg-info/dependency_links.txt +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy.egg-info/entry_points.txt +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy.egg-info/top_level.txt +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/versioneer.py +0 -0
{debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydev_runfiles/pydev_runfiles.py
RENAMED
|
@@ -6,23 +6,23 @@ from _pydev_runfiles.pydev_runfiles_coverage import start_coverage_support
|
|
|
6
6
|
from _pydevd_bundle.pydevd_constants import * # @UnusedWildImport
|
|
7
7
|
import re
|
|
8
8
|
import time
|
|
9
|
+
import json
|
|
9
10
|
|
|
10
11
|
|
|
11
|
-
|
|
12
|
+
# =======================================================================================================================
|
|
12
13
|
# Configuration
|
|
13
|
-
|
|
14
|
+
# =======================================================================================================================
|
|
14
15
|
class Configuration:
|
|
15
|
-
|
|
16
16
|
def __init__(
|
|
17
17
|
self,
|
|
18
|
-
files_or_dirs=
|
|
18
|
+
files_or_dirs="",
|
|
19
19
|
verbosity=2,
|
|
20
20
|
include_tests=None,
|
|
21
21
|
tests=None,
|
|
22
22
|
port=None,
|
|
23
23
|
files_to_tests=None,
|
|
24
24
|
jobs=1,
|
|
25
|
-
split_jobs=
|
|
25
|
+
split_jobs="tests",
|
|
26
26
|
coverage_output_dir=None,
|
|
27
27
|
coverage_include=None,
|
|
28
28
|
coverage_output_file=None,
|
|
@@ -30,7 +30,7 @@ class Configuration:
|
|
|
30
30
|
exclude_tests=None,
|
|
31
31
|
include_files=None,
|
|
32
32
|
django=False,
|
|
33
|
-
|
|
33
|
+
):
|
|
34
34
|
self.files_or_dirs = files_or_dirs
|
|
35
35
|
self.verbosity = verbosity
|
|
36
36
|
self.include_tests = include_tests
|
|
@@ -59,7 +59,7 @@ class Configuration:
|
|
|
59
59
|
self.coverage_output_file = coverage_output_file
|
|
60
60
|
|
|
61
61
|
def __str__(self):
|
|
62
|
-
return
|
|
62
|
+
return """Configuration
|
|
63
63
|
- files_or_dirs: %s
|
|
64
64
|
- verbosity: %s
|
|
65
65
|
- tests: %s
|
|
@@ -79,32 +79,28 @@ class Configuration:
|
|
|
79
79
|
- coverage_output_file: %s
|
|
80
80
|
|
|
81
81
|
- django: %s
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
)
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
#=======================================================================================================================
|
|
82
|
+
""" % (
|
|
83
|
+
self.files_or_dirs,
|
|
84
|
+
self.verbosity,
|
|
85
|
+
self.tests,
|
|
86
|
+
self.port,
|
|
87
|
+
self.files_to_tests,
|
|
88
|
+
self.jobs,
|
|
89
|
+
self.split_jobs,
|
|
90
|
+
self.include_files,
|
|
91
|
+
self.include_tests,
|
|
92
|
+
self.exclude_files,
|
|
93
|
+
self.exclude_tests,
|
|
94
|
+
self.coverage_output_dir,
|
|
95
|
+
self.coverage_include,
|
|
96
|
+
self.coverage_output_file,
|
|
97
|
+
self.django,
|
|
98
|
+
)
|
|
99
|
+
|
|
100
|
+
|
|
101
|
+
# =======================================================================================================================
|
|
106
102
|
# parse_cmdline
|
|
107
|
-
|
|
103
|
+
# =======================================================================================================================
|
|
108
104
|
def parse_cmdline(argv=None):
|
|
109
105
|
"""
|
|
110
106
|
Parses command line and returns test directories, verbosity, test filter and test suites
|
|
@@ -132,7 +128,7 @@ def parse_cmdline(argv=None):
|
|
|
132
128
|
tests = None
|
|
133
129
|
port = None
|
|
134
130
|
jobs = 1
|
|
135
|
-
split_jobs =
|
|
131
|
+
split_jobs = "tests"
|
|
136
132
|
files_to_tests = {}
|
|
137
133
|
coverage_output_dir = None
|
|
138
134
|
coverage_include = None
|
|
@@ -142,29 +138,25 @@ def parse_cmdline(argv=None):
|
|
|
142
138
|
django = False
|
|
143
139
|
|
|
144
140
|
from _pydev_bundle._pydev_getopt import gnu_getopt
|
|
141
|
+
|
|
145
142
|
optlist, dirs = gnu_getopt(
|
|
146
|
-
argv[1:],
|
|
143
|
+
argv[1:],
|
|
144
|
+
"",
|
|
147
145
|
[
|
|
148
146
|
"verbosity=",
|
|
149
147
|
"tests=",
|
|
150
|
-
|
|
151
148
|
"port=",
|
|
152
149
|
"config_file=",
|
|
153
|
-
|
|
154
150
|
"jobs=",
|
|
155
151
|
"split_jobs=",
|
|
156
|
-
|
|
157
152
|
"include_tests=",
|
|
158
153
|
"include_files=",
|
|
159
|
-
|
|
160
154
|
"exclude_files=",
|
|
161
155
|
"exclude_tests=",
|
|
162
|
-
|
|
163
156
|
"coverage_output_dir=",
|
|
164
157
|
"coverage_include=",
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
]
|
|
158
|
+
"django=",
|
|
159
|
+
],
|
|
168
160
|
)
|
|
169
161
|
|
|
170
162
|
for opt, value in optlist:
|
|
@@ -179,37 +171,43 @@ def parse_cmdline(argv=None):
|
|
|
179
171
|
|
|
180
172
|
elif opt in ("-s", "--split_jobs"):
|
|
181
173
|
split_jobs = value
|
|
182
|
-
if split_jobs not in (
|
|
174
|
+
if split_jobs not in ("module", "tests"):
|
|
183
175
|
raise AssertionError('Expected split to be either "module" or "tests". Was :%s' % (split_jobs,))
|
|
184
176
|
|
|
185
|
-
elif opt in (
|
|
177
|
+
elif opt in (
|
|
178
|
+
"-d",
|
|
179
|
+
"--coverage_output_dir",
|
|
180
|
+
):
|
|
186
181
|
coverage_output_dir = value.strip()
|
|
187
182
|
|
|
188
|
-
elif opt in (
|
|
183
|
+
elif opt in (
|
|
184
|
+
"-i",
|
|
185
|
+
"--coverage_include",
|
|
186
|
+
):
|
|
189
187
|
coverage_include = value.strip()
|
|
190
188
|
|
|
191
189
|
elif opt in ("-I", "--include_tests"):
|
|
192
|
-
include_tests = value.split(
|
|
190
|
+
include_tests = value.split(",")
|
|
193
191
|
|
|
194
192
|
elif opt in ("-E", "--exclude_files"):
|
|
195
|
-
exclude_files = value.split(
|
|
193
|
+
exclude_files = value.split(",")
|
|
196
194
|
|
|
197
195
|
elif opt in ("-F", "--include_files"):
|
|
198
|
-
include_files = value.split(
|
|
196
|
+
include_files = value.split(",")
|
|
199
197
|
|
|
200
198
|
elif opt in ("-e", "--exclude_tests"):
|
|
201
|
-
exclude_tests = value.split(
|
|
199
|
+
exclude_tests = value.split(",")
|
|
202
200
|
|
|
203
201
|
elif opt in ("-t", "--tests"):
|
|
204
|
-
tests = value.split(
|
|
202
|
+
tests = value.split(",")
|
|
205
203
|
|
|
206
204
|
elif opt in ("--django",):
|
|
207
|
-
django = value.strip() in [
|
|
205
|
+
django = value.strip() in ["true", "True", "1"]
|
|
208
206
|
|
|
209
207
|
elif opt in ("-c", "--config_file"):
|
|
210
208
|
config_file = value.strip()
|
|
211
209
|
if os.path.exists(config_file):
|
|
212
|
-
f = open(config_file,
|
|
210
|
+
f = open(config_file, "r")
|
|
213
211
|
try:
|
|
214
212
|
config_file_contents = f.read()
|
|
215
213
|
finally:
|
|
@@ -220,7 +218,7 @@ def parse_cmdline(argv=None):
|
|
|
220
218
|
|
|
221
219
|
if config_file_contents:
|
|
222
220
|
for line in config_file_contents.splitlines():
|
|
223
|
-
file_and_test = line.split(
|
|
221
|
+
file_and_test = line.split("|")
|
|
224
222
|
if len(file_and_test) == 2:
|
|
225
223
|
file, test = file_and_test
|
|
226
224
|
if file in files_to_tests:
|
|
@@ -229,16 +227,29 @@ def parse_cmdline(argv=None):
|
|
|
229
227
|
files_to_tests[file] = [test]
|
|
230
228
|
|
|
231
229
|
else:
|
|
232
|
-
sys.stderr.write(
|
|
230
|
+
sys.stderr.write("Could not find config file: %s\n" % (config_file,))
|
|
231
|
+
|
|
232
|
+
filter_tests_env_var = os.environ.get("PYDEV_RUNFILES_FILTER_TESTS", None)
|
|
233
|
+
if filter_tests_env_var:
|
|
234
|
+
loaded = json.loads(filter_tests_env_var)
|
|
235
|
+
include = loaded["include"]
|
|
236
|
+
for path, name in include:
|
|
237
|
+
existing = files_to_tests.get(path)
|
|
238
|
+
if not existing:
|
|
239
|
+
existing = files_to_tests[path] = []
|
|
240
|
+
existing.append(name)
|
|
241
|
+
# Note: at this point exclude or `*` is not handled.
|
|
242
|
+
# Clients need to do all the filtering on their side (could
|
|
243
|
+
# change to have `exclude` and support `*` entries).
|
|
233
244
|
|
|
234
245
|
if type([]) != type(dirs):
|
|
235
246
|
dirs = [dirs]
|
|
236
247
|
|
|
237
248
|
ret_dirs = []
|
|
238
249
|
for d in dirs:
|
|
239
|
-
if
|
|
250
|
+
if "|" in d:
|
|
240
251
|
# paths may come from the ide separated by |
|
|
241
|
-
ret_dirs.extend(d.split(
|
|
252
|
+
ret_dirs.extend(d.split("|"))
|
|
242
253
|
else:
|
|
243
254
|
ret_dirs.append(d)
|
|
244
255
|
|
|
@@ -246,7 +257,7 @@ def parse_cmdline(argv=None):
|
|
|
246
257
|
|
|
247
258
|
if tests:
|
|
248
259
|
if verbosity > 4:
|
|
249
|
-
sys.stdout.write(
|
|
260
|
+
sys.stdout.write("--tests provided. Ignoring --exclude_files, --exclude_tests and --include_files\n")
|
|
250
261
|
exclude_files = exclude_tests = include_files = None
|
|
251
262
|
|
|
252
263
|
config = Configuration(
|
|
@@ -267,34 +278,30 @@ def parse_cmdline(argv=None):
|
|
|
267
278
|
)
|
|
268
279
|
|
|
269
280
|
if verbosity > 5:
|
|
270
|
-
sys.stdout.write(str(config) +
|
|
281
|
+
sys.stdout.write(str(config) + "\n")
|
|
271
282
|
return config
|
|
272
283
|
|
|
273
284
|
|
|
274
|
-
|
|
285
|
+
# =======================================================================================================================
|
|
275
286
|
# PydevTestRunner
|
|
276
|
-
|
|
287
|
+
# =======================================================================================================================
|
|
277
288
|
class PydevTestRunner(object):
|
|
278
|
-
"""
|
|
289
|
+
"""finds and runs a file or directory of files as a unit test"""
|
|
279
290
|
|
|
280
291
|
__py_extensions = ["*.py", "*.pyw"]
|
|
281
292
|
__exclude_files = ["__init__.*"]
|
|
282
293
|
|
|
283
294
|
# Just to check that only this attributes will be written to this file
|
|
284
295
|
__slots__ = [
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
'split_jobs', # String with 'tests' or 'module' (how should the jobs be split)
|
|
295
|
-
|
|
296
|
-
'configuration',
|
|
297
|
-
'coverage',
|
|
296
|
+
"verbosity", # Always used
|
|
297
|
+
"files_to_tests", # If this one is given, the ones below are not used
|
|
298
|
+
"files_or_dirs", # Files or directories received in the command line
|
|
299
|
+
"include_tests", # The filter used to collect the tests
|
|
300
|
+
"tests", # Strings with the tests to be run
|
|
301
|
+
"jobs", # Integer with the number of jobs that should be used to run the test cases
|
|
302
|
+
"split_jobs", # String with 'tests' or 'module' (how should the jobs be split)
|
|
303
|
+
"configuration",
|
|
304
|
+
"coverage",
|
|
298
305
|
]
|
|
299
306
|
|
|
300
307
|
def __init__(self, configuration):
|
|
@@ -317,7 +324,7 @@ class PydevTestRunner(object):
|
|
|
317
324
|
self.__adjust_path()
|
|
318
325
|
|
|
319
326
|
def __adjust_path(self):
|
|
320
|
-
"""
|
|
327
|
+
"""add the current file or directory to the python path"""
|
|
321
328
|
path_to_append = None
|
|
322
329
|
for n in range(len(self.files_or_dirs)):
|
|
323
330
|
dir_name = self.__unixify(self.files_or_dirs[n])
|
|
@@ -329,10 +336,10 @@ class PydevTestRunner(object):
|
|
|
329
336
|
path_to_append = os.path.dirname(dir_name)
|
|
330
337
|
else:
|
|
331
338
|
if not os.path.exists(dir_name):
|
|
332
|
-
block_line =
|
|
333
|
-
sys.stderr.write(
|
|
339
|
+
block_line = "*" * 120
|
|
340
|
+
sys.stderr.write("\n%s\n* PyDev test runner error: %s does not exist.\n%s\n" % (block_line, dir_name, block_line))
|
|
334
341
|
return
|
|
335
|
-
msg =
|
|
342
|
+
msg = "unknown type. \n%s\nshould be file or a directory.\n" % (dir_name)
|
|
336
343
|
raise RuntimeError(msg)
|
|
337
344
|
if path_to_append is not None:
|
|
338
345
|
# Add it as the last one (so, first things are resolved against the default dirs and
|
|
@@ -340,8 +347,8 @@ class PydevTestRunner(object):
|
|
|
340
347
|
sys.path.append(path_to_append)
|
|
341
348
|
|
|
342
349
|
def __is_valid_py_file(self, fname):
|
|
343
|
-
"""
|
|
344
|
-
|
|
350
|
+
"""tests that a particular file contains the proper file extension
|
|
351
|
+
and is not in the list of files to exclude"""
|
|
345
352
|
is_valid_fname = 0
|
|
346
353
|
for invalid_fname in self.__class__.__exclude_files:
|
|
347
354
|
is_valid_fname += int(not fnmatch.fnmatch(fname, invalid_fname))
|
|
@@ -351,16 +358,16 @@ class PydevTestRunner(object):
|
|
|
351
358
|
return is_valid_fname > 0 and if_valid_ext > 0
|
|
352
359
|
|
|
353
360
|
def __unixify(self, s):
|
|
354
|
-
"""
|
|
361
|
+
"""stupid windows. converts the backslash to forwardslash for consistency"""
|
|
355
362
|
return os.path.normpath(s).replace(os.sep, "/")
|
|
356
363
|
|
|
357
364
|
def __importify(self, s, dir=False):
|
|
358
|
-
"""
|
|
359
|
-
|
|
365
|
+
"""turns directory separators into dots and removes the ".py*" extension
|
|
366
|
+
so the string can be used as import statement"""
|
|
360
367
|
if not dir:
|
|
361
368
|
dirname, fname = os.path.split(s)
|
|
362
369
|
|
|
363
|
-
if fname.count(
|
|
370
|
+
if fname.count(".") > 1:
|
|
364
371
|
# if there's a file named xxx.xx.py, it is not a valid module, so, let's not load it...
|
|
365
372
|
return
|
|
366
373
|
|
|
@@ -375,14 +382,14 @@ class PydevTestRunner(object):
|
|
|
375
382
|
return s.replace("\\", "/").replace("/", ".")
|
|
376
383
|
|
|
377
384
|
def __add_files(self, pyfiles, root, files):
|
|
378
|
-
"""
|
|
385
|
+
"""if files match, appends them to pyfiles. used by os.path.walk fcn"""
|
|
379
386
|
for fname in files:
|
|
380
387
|
if self.__is_valid_py_file(fname):
|
|
381
388
|
name_without_base_dir = self.__unixify(os.path.join(root, fname))
|
|
382
389
|
pyfiles.append(name_without_base_dir)
|
|
383
390
|
|
|
384
391
|
def find_import_files(self):
|
|
385
|
-
"""
|
|
392
|
+
"""return a list of files to import"""
|
|
386
393
|
if self.files_to_tests:
|
|
387
394
|
pyfiles = self.files_to_tests.keys()
|
|
388
395
|
else:
|
|
@@ -395,8 +402,8 @@ class PydevTestRunner(object):
|
|
|
395
402
|
# they don't have __init__.py
|
|
396
403
|
exclude = {}
|
|
397
404
|
for d in dirs:
|
|
398
|
-
for init in [
|
|
399
|
-
if os.path.exists(os.path.join(root, d, init).replace(
|
|
405
|
+
for init in ["__init__.py", "__init__.pyo", "__init__.pyc", "__init__.pyw", "__init__$py.class"]:
|
|
406
|
+
if os.path.exists(os.path.join(root, d, init).replace("\\", "/")):
|
|
400
407
|
break
|
|
401
408
|
else:
|
|
402
409
|
exclude[d] = 1
|
|
@@ -429,23 +436,25 @@ class PydevTestRunner(object):
|
|
|
429
436
|
|
|
430
437
|
if not add:
|
|
431
438
|
if self.verbosity > 3:
|
|
432
|
-
sys.stdout.write(
|
|
439
|
+
sys.stdout.write(
|
|
440
|
+
"Skipped file: %s (did not match any include_files pattern: %s)\n" % (f, self.configuration.include_files)
|
|
441
|
+
)
|
|
433
442
|
|
|
434
443
|
elif self.configuration.exclude_files:
|
|
435
444
|
for pat in self.configuration.exclude_files:
|
|
436
445
|
if fnmatch.fnmatchcase(basename, pat):
|
|
437
446
|
if self.verbosity > 3:
|
|
438
|
-
sys.stdout.write(
|
|
447
|
+
sys.stdout.write("Skipped file: %s (matched exclude_files pattern: %s)\n" % (f, pat))
|
|
439
448
|
|
|
440
449
|
elif self.verbosity > 2:
|
|
441
|
-
sys.stdout.write(
|
|
450
|
+
sys.stdout.write("Skipped file: %s\n" % (f,))
|
|
442
451
|
|
|
443
452
|
add = False
|
|
444
453
|
break
|
|
445
454
|
|
|
446
455
|
if add:
|
|
447
456
|
if self.verbosity > 3:
|
|
448
|
-
sys.stdout.write(
|
|
457
|
+
sys.stdout.write("Adding file: %s for test discovery.\n" % (f,))
|
|
449
458
|
ret.append(f)
|
|
450
459
|
|
|
451
460
|
pyfiles = ret
|
|
@@ -453,29 +462,31 @@ class PydevTestRunner(object):
|
|
|
453
462
|
return pyfiles
|
|
454
463
|
|
|
455
464
|
def __get_module_from_str(self, modname, print_exception, pyfile):
|
|
456
|
-
"""
|
|
457
|
-
|
|
458
|
-
|
|
465
|
+
"""Import the module in the given import path.
|
|
466
|
+
* Returns the "final" module, so importing "coilib40.subject.visu"
|
|
467
|
+
returns the "visu" module, not the "coilib40" as returned by __import__"""
|
|
459
468
|
try:
|
|
460
469
|
mod = __import__(modname)
|
|
461
|
-
for part in modname.split(
|
|
470
|
+
for part in modname.split(".")[1:]:
|
|
462
471
|
mod = getattr(mod, part)
|
|
463
472
|
return mod
|
|
464
473
|
except:
|
|
465
474
|
if print_exception:
|
|
466
475
|
from _pydev_runfiles import pydev_runfiles_xml_rpc
|
|
467
476
|
from _pydevd_bundle import pydevd_io
|
|
468
|
-
|
|
469
|
-
|
|
477
|
+
|
|
478
|
+
buf_err = pydevd_io.start_redirect(keep_original_redirection=True, std="stderr")
|
|
479
|
+
buf_out = pydevd_io.start_redirect(keep_original_redirection=True, std="stdout")
|
|
470
480
|
try:
|
|
471
|
-
import traceback
|
|
472
|
-
|
|
481
|
+
import traceback
|
|
482
|
+
|
|
483
|
+
traceback.print_exc()
|
|
484
|
+
sys.stderr.write("ERROR: Module: %s could not be imported (file: %s).\n" % (modname, pyfile))
|
|
473
485
|
finally:
|
|
474
|
-
pydevd_io.end_redirect(
|
|
475
|
-
pydevd_io.end_redirect(
|
|
486
|
+
pydevd_io.end_redirect("stderr")
|
|
487
|
+
pydevd_io.end_redirect("stdout")
|
|
476
488
|
|
|
477
|
-
pydev_runfiles_xml_rpc.notifyTest(
|
|
478
|
-
'error', buf_out.getvalue(), buf_err.getvalue(), pyfile, modname, 0)
|
|
489
|
+
pydev_runfiles_xml_rpc.notifyTest("error", buf_out.getvalue(), buf_err.getvalue(), pyfile, modname, 0)
|
|
479
490
|
|
|
480
491
|
return None
|
|
481
492
|
|
|
@@ -485,7 +496,7 @@ class PydevTestRunner(object):
|
|
|
485
496
|
return [x for x in seq if not (x in seen or seen_add(x))]
|
|
486
497
|
|
|
487
498
|
def find_modules_from_files(self, pyfiles):
|
|
488
|
-
"""
|
|
499
|
+
"""returns a list of modules given a list of files"""
|
|
489
500
|
# let's make sure that the paths we want are in the pythonpath...
|
|
490
501
|
imports = [(s, self.__importify(s)) for s in pyfiles]
|
|
491
502
|
|
|
@@ -503,13 +514,13 @@ class PydevTestRunner(object):
|
|
|
503
514
|
choices = []
|
|
504
515
|
for s in system_paths:
|
|
505
516
|
if imp.startswith(s):
|
|
506
|
-
add = imp[len(s) + 1:]
|
|
517
|
+
add = imp[len(s) + 1 :]
|
|
507
518
|
if add:
|
|
508
519
|
choices.append(add)
|
|
509
520
|
# sys.stdout.write(' ' + add + ' ')
|
|
510
521
|
|
|
511
522
|
if not choices:
|
|
512
|
-
sys.stdout.write(
|
|
523
|
+
sys.stdout.write("PYTHONPATH not found for file: %s\n" % imp)
|
|
513
524
|
else:
|
|
514
525
|
for i, import_str in enumerate(choices):
|
|
515
526
|
print_exception = i == len(choices) - 1
|
|
@@ -520,9 +531,9 @@ class PydevTestRunner(object):
|
|
|
520
531
|
|
|
521
532
|
return ret
|
|
522
533
|
|
|
523
|
-
|
|
534
|
+
# ===================================================================================================================
|
|
524
535
|
# GetTestCaseNames
|
|
525
|
-
|
|
536
|
+
# ===================================================================================================================
|
|
526
537
|
class GetTestCaseNames:
|
|
527
538
|
"""Yes, we need a class for that (cannot use outer context on jython 2.1)"""
|
|
528
539
|
|
|
@@ -538,14 +549,14 @@ class PydevTestRunner(object):
|
|
|
538
549
|
if className in self.accepted_classes:
|
|
539
550
|
for attrname in dir(testCaseClass):
|
|
540
551
|
# If a class is chosen, we select all the 'test' methods'
|
|
541
|
-
if attrname.startswith(
|
|
552
|
+
if attrname.startswith("test") and hasattr(getattr(testCaseClass, attrname), "__call__"):
|
|
542
553
|
testFnNames.append(attrname)
|
|
543
554
|
|
|
544
555
|
else:
|
|
545
556
|
for attrname in dir(testCaseClass):
|
|
546
557
|
# If we have the class+method name, we must do a full check and have an exact match.
|
|
547
|
-
if className +
|
|
548
|
-
if hasattr(getattr(testCaseClass, attrname),
|
|
558
|
+
if className + "." + attrname in self.accepted_methods:
|
|
559
|
+
if hasattr(getattr(testCaseClass, attrname), "__call__"):
|
|
549
560
|
testFnNames.append(attrname)
|
|
550
561
|
|
|
551
562
|
# sorted() is not available in jython 2.1
|
|
@@ -554,6 +565,7 @@ class PydevTestRunner(object):
|
|
|
554
565
|
|
|
555
566
|
def _decorate_test_suite(self, suite, pyfile, module_name):
|
|
556
567
|
import unittest
|
|
568
|
+
|
|
557
569
|
if isinstance(suite, unittest.TestSuite):
|
|
558
570
|
add = False
|
|
559
571
|
suite.__pydev_pyfile__ = pyfile
|
|
@@ -574,10 +586,11 @@ class PydevTestRunner(object):
|
|
|
574
586
|
return False
|
|
575
587
|
|
|
576
588
|
def find_tests_from_modules(self, file_and_modules_and_module_name):
|
|
577
|
-
"""
|
|
589
|
+
"""returns the unittests given a list of modules"""
|
|
578
590
|
# Use our own suite!
|
|
579
591
|
from _pydev_runfiles import pydev_runfiles_unittest
|
|
580
592
|
import unittest
|
|
593
|
+
|
|
581
594
|
unittest.TestLoader.suiteClass = pydev_runfiles_unittest.PydevTestSuite
|
|
582
595
|
loader = unittest.TestLoader()
|
|
583
596
|
|
|
@@ -602,7 +615,7 @@ class PydevTestRunner(object):
|
|
|
602
615
|
accepted_methods = {}
|
|
603
616
|
|
|
604
617
|
for t in self.tests:
|
|
605
|
-
splitted = t.split(
|
|
618
|
+
splitted = t.split(".")
|
|
606
619
|
if len(splitted) == 1:
|
|
607
620
|
accepted_classes[t] = t
|
|
608
621
|
|
|
@@ -619,9 +632,10 @@ class PydevTestRunner(object):
|
|
|
619
632
|
return ret
|
|
620
633
|
|
|
621
634
|
def filter_tests(self, test_objs, internal_call=False):
|
|
622
|
-
"""
|
|
623
|
-
|
|
635
|
+
"""based on a filter name, only return those tests that have
|
|
636
|
+
the test case names that match"""
|
|
624
637
|
import unittest
|
|
638
|
+
|
|
625
639
|
if not internal_call:
|
|
626
640
|
if not self.configuration.include_tests and not self.tests and not self.configuration.exclude_tests:
|
|
627
641
|
# No need to filter if we have nothing to filter!
|
|
@@ -629,17 +643,16 @@ class PydevTestRunner(object):
|
|
|
629
643
|
|
|
630
644
|
if self.verbosity > 1:
|
|
631
645
|
if self.configuration.include_tests:
|
|
632
|
-
sys.stdout.write(
|
|
646
|
+
sys.stdout.write("Tests to include: %s\n" % (self.configuration.include_tests,))
|
|
633
647
|
|
|
634
648
|
if self.tests:
|
|
635
|
-
sys.stdout.write(
|
|
649
|
+
sys.stdout.write("Tests to run: %s\n" % (self.tests,))
|
|
636
650
|
|
|
637
651
|
if self.configuration.exclude_tests:
|
|
638
|
-
sys.stdout.write(
|
|
652
|
+
sys.stdout.write("Tests to exclude: %s\n" % (self.configuration.exclude_tests,))
|
|
639
653
|
|
|
640
654
|
test_suite = []
|
|
641
655
|
for test_obj in test_objs:
|
|
642
|
-
|
|
643
656
|
if isinstance(test_obj, unittest.TestSuite):
|
|
644
657
|
# Note: keep the suites as they are and just 'fix' the tests (so, don't use the iter_tests).
|
|
645
658
|
if test_obj._tests:
|
|
@@ -659,10 +672,10 @@ class PydevTestRunner(object):
|
|
|
659
672
|
for pat in self.configuration.exclude_tests:
|
|
660
673
|
if fnmatch.fnmatchcase(testMethodName, pat):
|
|
661
674
|
if self.verbosity > 3:
|
|
662
|
-
sys.stdout.write(
|
|
675
|
+
sys.stdout.write("Skipped test: %s (matched exclude_tests pattern: %s)\n" % (testMethodName, pat))
|
|
663
676
|
|
|
664
677
|
elif self.verbosity > 2:
|
|
665
|
-
sys.stdout.write(
|
|
678
|
+
sys.stdout.write("Skipped test: %s\n" % (testMethodName,))
|
|
666
679
|
|
|
667
680
|
add = False
|
|
668
681
|
break
|
|
@@ -680,13 +693,19 @@ class PydevTestRunner(object):
|
|
|
680
693
|
test_suite.append(test_obj)
|
|
681
694
|
else:
|
|
682
695
|
if self.verbosity > 3:
|
|
683
|
-
sys.stdout.write(
|
|
684
|
-
|
|
696
|
+
sys.stdout.write(
|
|
697
|
+
"Skipped test: %s (did not match any include_tests pattern %s)\n"
|
|
698
|
+
% (
|
|
699
|
+
testMethodName,
|
|
700
|
+
self.configuration.include_tests,
|
|
701
|
+
)
|
|
702
|
+
)
|
|
685
703
|
return test_suite
|
|
686
704
|
|
|
687
705
|
def iter_tests(self, test_objs):
|
|
688
706
|
# Note: not using yield because of Jython 2.1.
|
|
689
707
|
import unittest
|
|
708
|
+
|
|
690
709
|
tests = []
|
|
691
710
|
for test_obj in test_objs:
|
|
692
711
|
if isinstance(test_obj, unittest.TestSuite):
|
|
@@ -712,7 +731,7 @@ class PydevTestRunner(object):
|
|
|
712
731
|
return 1
|
|
713
732
|
|
|
714
733
|
for t in tests:
|
|
715
|
-
class_and_method = t.split(
|
|
734
|
+
class_and_method = t.split(".")
|
|
716
735
|
if len(class_and_method) == 1:
|
|
717
736
|
# only class name
|
|
718
737
|
if class_and_method[0] == test_case.__class__.__name__:
|
|
@@ -725,7 +744,7 @@ class PydevTestRunner(object):
|
|
|
725
744
|
return 0
|
|
726
745
|
|
|
727
746
|
def __match(self, filter_list, name):
|
|
728
|
-
"""
|
|
747
|
+
"""returns whether a test name matches the test filter"""
|
|
729
748
|
if filter_list is None:
|
|
730
749
|
return 1
|
|
731
750
|
for f in filter_list:
|
|
@@ -734,15 +753,21 @@ class PydevTestRunner(object):
|
|
|
734
753
|
return 0
|
|
735
754
|
|
|
736
755
|
def run_tests(self, handle_coverage=True):
|
|
737
|
-
"""
|
|
756
|
+
"""runs all tests"""
|
|
738
757
|
sys.stdout.write("Finding files... ")
|
|
739
758
|
files = self.find_import_files()
|
|
740
759
|
if self.verbosity > 3:
|
|
741
|
-
sys.stdout.write(
|
|
760
|
+
sys.stdout.write("%s ... done.\n" % (self.files_or_dirs))
|
|
742
761
|
else:
|
|
743
|
-
sys.stdout.write(
|
|
762
|
+
sys.stdout.write("done.\n")
|
|
744
763
|
sys.stdout.write("Importing test modules ... ")
|
|
745
764
|
|
|
765
|
+
if self.configuration.django:
|
|
766
|
+
import django
|
|
767
|
+
|
|
768
|
+
if hasattr(django, "setup"):
|
|
769
|
+
django.setup()
|
|
770
|
+
|
|
746
771
|
if handle_coverage:
|
|
747
772
|
coverage_files, coverage = start_coverage_support(self.configuration)
|
|
748
773
|
|
|
@@ -753,8 +778,10 @@ class PydevTestRunner(object):
|
|
|
753
778
|
all_tests = self.filter_tests(all_tests)
|
|
754
779
|
|
|
755
780
|
from _pydev_runfiles import pydev_runfiles_unittest
|
|
781
|
+
|
|
756
782
|
test_suite = pydev_runfiles_unittest.PydevTestSuite(all_tests)
|
|
757
783
|
from _pydev_runfiles import pydev_runfiles_xml_rpc
|
|
784
|
+
|
|
758
785
|
pydev_runfiles_xml_rpc.notifyTestsCollected(test_suite.countTestCases())
|
|
759
786
|
|
|
760
787
|
start_time = time.time()
|
|
@@ -768,12 +795,13 @@ class PydevTestRunner(object):
|
|
|
768
795
|
# (e.g.: 2 jobs were requested for running 1 test) -- in which case execute_tests_in_parallel will
|
|
769
796
|
# return False and won't run any tests.
|
|
770
797
|
executed_in_parallel = pydev_runfiles_parallel.execute_tests_in_parallel(
|
|
771
|
-
all_tests, self.jobs, self.split_jobs, self.verbosity, coverage_files, self.configuration.coverage_include
|
|
798
|
+
all_tests, self.jobs, self.split_jobs, self.verbosity, coverage_files, self.configuration.coverage_include
|
|
799
|
+
)
|
|
772
800
|
|
|
773
801
|
if not executed_in_parallel:
|
|
774
802
|
# If in coverage, we don't need to pass anything here (coverage is already enabled for this execution).
|
|
775
803
|
runner = pydev_runfiles_unittest.PydevTextTestRunner(stream=sys.stdout, descriptions=1, verbosity=self.verbosity)
|
|
776
|
-
sys.stdout.write(
|
|
804
|
+
sys.stdout.write("\n")
|
|
777
805
|
runner.run(test_suite)
|
|
778
806
|
|
|
779
807
|
if self.configuration.django:
|
|
@@ -785,7 +813,7 @@ class PydevTestRunner(object):
|
|
|
785
813
|
coverage.stop()
|
|
786
814
|
coverage.save()
|
|
787
815
|
|
|
788
|
-
total_time =
|
|
816
|
+
total_time = "Finished in: %.2f secs." % (time.time() - start_time,)
|
|
789
817
|
pydev_runfiles_xml_rpc.notifyTestRunFinished(total_time)
|
|
790
818
|
|
|
791
819
|
|
|
@@ -802,7 +830,6 @@ def get_django_test_suite_runner():
|
|
|
802
830
|
from django.test.runner import DiscoverRunner
|
|
803
831
|
|
|
804
832
|
class MyDjangoTestSuiteRunner(DiscoverRunner):
|
|
805
|
-
|
|
806
833
|
def __init__(self, on_run_suite):
|
|
807
834
|
django.setup()
|
|
808
835
|
DiscoverRunner.__init__(self)
|
|
@@ -824,15 +851,15 @@ def get_django_test_suite_runner():
|
|
|
824
851
|
except:
|
|
825
852
|
|
|
826
853
|
class DjangoTestSuiteRunner:
|
|
827
|
-
|
|
828
854
|
def __init__(self):
|
|
829
855
|
pass
|
|
830
856
|
|
|
831
857
|
def run_tests(self, *args, **kwargs):
|
|
832
|
-
raise AssertionError(
|
|
858
|
+
raise AssertionError(
|
|
859
|
+
"Unable to run suite with django.test.runner.DiscoverRunner nor django.test.simple.DjangoTestSuiteRunner because it couldn't be imported."
|
|
860
|
+
)
|
|
833
861
|
|
|
834
862
|
class MyDjangoTestSuiteRunner(DjangoTestSuiteRunner):
|
|
835
|
-
|
|
836
863
|
def __init__(self, on_run_suite):
|
|
837
864
|
DjangoTestSuiteRunner.__init__(self)
|
|
838
865
|
self.on_run_suite = on_run_suite
|
|
@@ -850,8 +877,8 @@ def get_django_test_suite_runner():
|
|
|
850
877
|
return DJANGO_TEST_SUITE_RUNNER
|
|
851
878
|
|
|
852
879
|
|
|
853
|
-
|
|
880
|
+
# =======================================================================================================================
|
|
854
881
|
# main
|
|
855
|
-
|
|
882
|
+
# =======================================================================================================================
|
|
856
883
|
def main(configuration):
|
|
857
884
|
PydevTestRunner(configuration).run_tests()
|