mirror of
https://github.com/microsoft/debugpy.git
synced 2025-12-23 08:48:12 +00:00
43 lines
1.1 KiB
Python
43 lines
1.1 KiB
Python
# Copyright (c) Microsoft Corporation. All rights reserved.
|
|
# Licensed under the MIT License. See LICENSE in the project root
|
|
# for license information.
|
|
|
|
import sys
|
|
|
|
from ptvsd._local import run_module, run_file, run_main
|
|
|
|
|
|
# TODO: not needed?
|
|
DONT_DEBUG = []
|
|
|
|
LOCALHOST = 'localhost'
|
|
|
|
RUNNERS = {
|
|
'module': run_module, # python -m spam
|
|
'script': run_file, # python spam.py
|
|
'code': run_file, # python -c 'print("spam")'
|
|
None: run_file, # catchall
|
|
}
|
|
|
|
|
|
def debug(filename, port_num, debug_id, debug_options, run_as,
|
|
_runners=RUNNERS, _extra=None, *args, **kwargs):
|
|
# TODO: docstring
|
|
if _extra is None:
|
|
_extra = sys.argv[1:]
|
|
address = (LOCALHOST, port_num)
|
|
try:
|
|
run = _runners[run_as]
|
|
except KeyError:
|
|
# TODO: fail?
|
|
run = _runners[None]
|
|
if _extra:
|
|
args = _extra + list(args)
|
|
kwargs.setdefault('singlesession', True)
|
|
run(address, filename, *args, **kwargs)
|
|
|
|
|
|
def run(filename, port_num, run_as,
|
|
*args, **kwargs):
|
|
address = (LOCALHOST, port_num)
|
|
run_main(address, filename, run_as, *args, **kwargs)
|