diff options
author | monster <monster@ydb.tech> | 2022-07-07 14:41:37 +0300 |
---|---|---|
committer | monster <monster@ydb.tech> | 2022-07-07 14:41:37 +0300 |
commit | 06e5c21a835c0e923506c4ff27929f34e00761c2 (patch) | |
tree | 75efcbc6854ef9bd476eb8bf00cc5c900da436a2 /contrib/tools/python3/src/Lib/asyncio/base_tasks.py | |
parent | 03f024c4412e3aa613bb543cf1660176320ba8f4 (diff) | |
download | ydb-06e5c21a835c0e923506c4ff27929f34e00761c2.tar.gz |
fix ya.make
Diffstat (limited to 'contrib/tools/python3/src/Lib/asyncio/base_tasks.py')
-rw-r--r-- | contrib/tools/python3/src/Lib/asyncio/base_tasks.py | 85 |
1 files changed, 0 insertions, 85 deletions
diff --git a/contrib/tools/python3/src/Lib/asyncio/base_tasks.py b/contrib/tools/python3/src/Lib/asyncio/base_tasks.py deleted file mode 100644 index 09bb171a2ce..00000000000 --- a/contrib/tools/python3/src/Lib/asyncio/base_tasks.py +++ /dev/null @@ -1,85 +0,0 @@ -import linecache -import traceback - -from . import base_futures -from . import coroutines - - -def _task_repr_info(task): - info = base_futures._future_repr_info(task) - - if task._must_cancel: - # replace status - info[0] = 'cancelling' - - info.insert(1, 'name=%r' % task.get_name()) - - coro = coroutines._format_coroutine(task._coro) - info.insert(2, f'coro=<{coro}>') - - if task._fut_waiter is not None: - info.insert(3, f'wait_for={task._fut_waiter!r}') - return info - - -def _task_get_stack(task, limit): - frames = [] - if hasattr(task._coro, 'cr_frame'): - # case 1: 'async def' coroutines - f = task._coro.cr_frame - elif hasattr(task._coro, 'gi_frame'): - # case 2: legacy coroutines - f = task._coro.gi_frame - elif hasattr(task._coro, 'ag_frame'): - # case 3: async generators - f = task._coro.ag_frame - else: - # case 4: unknown objects - f = None - if f is not None: - while f is not None: - if limit is not None: - if limit <= 0: - break - limit -= 1 - frames.append(f) - f = f.f_back - frames.reverse() - elif task._exception is not None: - tb = task._exception.__traceback__ - while tb is not None: - if limit is not None: - if limit <= 0: - break - limit -= 1 - frames.append(tb.tb_frame) - tb = tb.tb_next - return frames - - -def _task_print_stack(task, limit, file): - extracted_list = [] - checked = set() - for f in task.get_stack(limit=limit): - lineno = f.f_lineno - co = f.f_code - filename = co.co_filename - name = co.co_name - if filename not in checked: - checked.add(filename) - linecache.checkcache(filename) - line = linecache.getline(filename, lineno, f.f_globals) - extracted_list.append((filename, lineno, name, line)) - - exc = task._exception - if not extracted_list: - print(f'No stack for {task!r}', file=file) - elif exc is not None: - print(f'Traceback for {task!r} (most recent call last):', file=file) - else: - print(f'Stack for {task!r} (most recent call last):', file=file) - - traceback.print_list(extracted_list, file=file) - if exc is not None: - for line in traceback.format_exception_only(exc.__class__, exc): - print(line, file=file, end='') |