from collections import namedtuple
-FrameInfo = namedtuple('FrameInfo', ['funcname', 'filename', 'lineno'])
+LocationInfo = namedtuple('LocationInfo', ['lineno', 'end_lineno', 'col_offset', 'end_col_offset'], defaults=[None]*4)
+FrameInfo = namedtuple('FrameInfo', ['funcname', 'filename', 'location'])
CoroInfo = namedtuple('CoroInfo', ['call_stack', 'task_name'])
TaskInfo = namedtuple('TaskInfo', ['task_id', 'task_name', 'coroutine_stack', 'awaited_by'])
AwaitedInfo = namedtuple('AwaitedInfo', ['thread_id', 'awaited_by'])
awaited_by=[
CoroInfo(
call_stack=[
- FrameInfo("awaiter3", "/path/to/app.py", 130),
- FrameInfo("awaiter2", "/path/to/app.py", 120),
- FrameInfo("awaiter", "/path/to/app.py", 110)
+ FrameInfo("awaiter3", "/path/to/app.py", LocationInfo(130)),
+ FrameInfo("awaiter2", "/path/to/app.py", LocationInfo(120)),
+ FrameInfo("awaiter", "/path/to/app.py", LocationInfo(110))
],
task_name=4
),
CoroInfo(
call_stack=[
- FrameInfo("awaiterB3", "/path/to/app.py", 190),
- FrameInfo("awaiterB2", "/path/to/app.py", 180),
- FrameInfo("awaiterB", "/path/to/app.py", 170)
+ FrameInfo("awaiterB3", "/path/to/app.py", LocationInfo(190)),
+ FrameInfo("awaiterB2", "/path/to/app.py", LocationInfo(180)),
+ FrameInfo("awaiterB", "/path/to/app.py", LocationInfo(170))
],
task_name=5
),
CoroInfo(
call_stack=[
- FrameInfo("awaiterB3", "/path/to/app.py", 190),
- FrameInfo("awaiterB2", "/path/to/app.py", 180),
- FrameInfo("awaiterB", "/path/to/app.py", 170)
+ FrameInfo("awaiterB3", "/path/to/app.py", LocationInfo(190)),
+ FrameInfo("awaiterB2", "/path/to/app.py", LocationInfo(180)),
+ FrameInfo("awaiterB", "/path/to/app.py", LocationInfo(170))
],
task_name=6
),
CoroInfo(
call_stack=[
- FrameInfo("awaiter3", "/path/to/app.py", 130),
- FrameInfo("awaiter2", "/path/to/app.py", 120),
- FrameInfo("awaiter", "/path/to/app.py", 110)
+ FrameInfo("awaiter3", "/path/to/app.py", LocationInfo(130)),
+ FrameInfo("awaiter2", "/path/to/app.py", LocationInfo(120)),
+ FrameInfo("awaiter", "/path/to/app.py", LocationInfo(110))
],
task_name=7
)
awaited_by=[
CoroInfo(
call_stack=[
- FrameInfo("_aexit", "", 0),
- FrameInfo("__aexit__", "", 0),
- FrameInfo("main", "", 0)
+ FrameInfo("_aexit", "", LocationInfo(0)),
+ FrameInfo("__aexit__", "", LocationInfo(0)),
+ FrameInfo("main", "", LocationInfo(0))
],
task_name=2
)
awaited_by=[
CoroInfo(
call_stack=[
- FrameInfo("_aexit", "", 0),
- FrameInfo("__aexit__", "", 0),
- FrameInfo("main", "", 0)
+ FrameInfo("_aexit", "", LocationInfo(0)),
+ FrameInfo("__aexit__", "", LocationInfo(0)),
+ FrameInfo("main", "", LocationInfo(0))
],
task_name=2
)
awaited_by=[
CoroInfo(
call_stack=[
- FrameInfo("_aexit", "", 0),
- FrameInfo("__aexit__", "", 0),
- FrameInfo("blocho_caller", "", 0),
- FrameInfo("bloch", "", 0)
+ FrameInfo("_aexit", "", LocationInfo(0)),
+ FrameInfo("__aexit__", "", LocationInfo(0)),
+ FrameInfo("blocho_caller", "", LocationInfo(0)),
+ FrameInfo("bloch", "", LocationInfo(0))
],
task_name=8
)
awaited_by=[
CoroInfo(
call_stack=[
- FrameInfo("_aexit", "", 0),
- FrameInfo("__aexit__", "", 0),
- FrameInfo("blocho_caller", "", 0),
- FrameInfo("bloch", "", 0)
+ FrameInfo("_aexit", "", LocationInfo(0)),
+ FrameInfo("__aexit__", "", LocationInfo(0)),
+ FrameInfo("blocho_caller", "", LocationInfo(0)),
+ FrameInfo("bloch", "", LocationInfo(0))
],
task_name=8
)
awaited_by=[
CoroInfo(
call_stack=[
- FrameInfo("_aexit", "", 0),
- FrameInfo("__aexit__", "", 0),
- FrameInfo("blocho_caller", "", 0),
- FrameInfo("bloch", "", 0)
+ FrameInfo("_aexit", "", LocationInfo(0)),
+ FrameInfo("__aexit__", "", LocationInfo(0)),
+ FrameInfo("blocho_caller", "", LocationInfo(0)),
+ FrameInfo("bloch", "", LocationInfo(0))
],
task_name=9
)
awaited_by=[
CoroInfo(
call_stack=[
- FrameInfo("_aexit", "", 0),
- FrameInfo("__aexit__", "", 0),
- FrameInfo("blocho_caller", "", 0),
- FrameInfo("bloch", "", 0)
+ FrameInfo("_aexit", "", LocationInfo(0)),
+ FrameInfo("__aexit__", "", LocationInfo(0)),
+ FrameInfo("blocho_caller", "", LocationInfo(0)),
+ FrameInfo("bloch", "", LocationInfo(0))
],
task_name=9
)
coroutine_stack=[],
awaited_by=[
CoroInfo(
- call_stack=[FrameInfo("main2", "", 0)],
+ call_stack=[FrameInfo("main2", "", LocationInfo(0))],
task_name=5
)
]
coroutine_stack=[],
awaited_by=[
CoroInfo(
- call_stack=[FrameInfo("main2", "", 0)],
+ call_stack=[FrameInfo("main2", "", LocationInfo(0))],
task_name=5
)
]
coroutine_stack=[],
awaited_by=[
CoroInfo(
- call_stack=[FrameInfo("main2", "", 0)],
+ call_stack=[FrameInfo("main2", "", LocationInfo(0))],
task_name=5
)
]
coroutine_stack=[],
awaited_by=[
CoroInfo(
- call_stack=[FrameInfo("main", "", 0)],
+ call_stack=[FrameInfo("main", "", LocationInfo(0))],
task_name=1
)
]
coroutine_stack=[],
awaited_by=[
CoroInfo(
- call_stack=[FrameInfo("main", "", 0)],
+ call_stack=[FrameInfo("main", "", LocationInfo(0))],
task_name=1
)
]
coroutine_stack=[],
awaited_by=[
CoroInfo(
- call_stack=[FrameInfo("main", "", 0)],
+ call_stack=[FrameInfo("main", "", LocationInfo(0))],
task_name=1
)
]
coroutine_stack=[],
awaited_by=[
CoroInfo(
- call_stack=[FrameInfo("main", "", 0)],
+ call_stack=[FrameInfo("main", "", LocationInfo(0))],
task_name=4
)
]
coroutine_stack=[],
awaited_by=[
CoroInfo(
- call_stack=[FrameInfo("main", "", 0)],
+ call_stack=[FrameInfo("main", "", LocationInfo(0))],
task_name=4
)
]
coroutine_stack=[],
awaited_by=[
CoroInfo(
- call_stack=[FrameInfo("main", "", 0)],
+ call_stack=[FrameInfo("main", "", LocationInfo(0))],
task_name=4
)
]
coroutine_stack=[],
awaited_by=[
CoroInfo(
- call_stack=[FrameInfo("awaiter2", "", 0)],
+ call_stack=[FrameInfo("awaiter2", "", LocationInfo(0))],
task_name=4
),
CoroInfo(
- call_stack=[FrameInfo("main", "", 0)],
+ call_stack=[FrameInfo("main", "", LocationInfo(0))],
task_name=2
)
]
coroutine_stack=[],
awaited_by=[
CoroInfo(
- call_stack=[FrameInfo("awaiter", "", 0)],
+ call_stack=[FrameInfo("awaiter", "", LocationInfo(0))],
task_name=3
)
]
awaited_by=[
CoroInfo(
call_stack=[
- FrameInfo("nested", "", 0),
- FrameInfo("nested", "", 0),
- FrameInfo("task_b", "", 0)
+ FrameInfo("nested", "", LocationInfo(0)),
+ FrameInfo("nested", "", LocationInfo(0)),
+ FrameInfo("task_b", "", LocationInfo(0))
],
task_name=4
)
awaited_by=[
CoroInfo(
call_stack=[
- FrameInfo("nested", "", 0),
- FrameInfo("nested", "", 0),
- FrameInfo("task_c", "", 0)
+ FrameInfo("nested", "", LocationInfo(0)),
+ FrameInfo("nested", "", LocationInfo(0)),
+ FrameInfo("task_c", "", LocationInfo(0))
],
task_name=5
),
CoroInfo(
call_stack=[
- FrameInfo("nested", "", 0),
- FrameInfo("nested", "", 0),
- FrameInfo("task_a", "", 0)
+ FrameInfo("nested", "", LocationInfo(0)),
+ FrameInfo("nested", "", LocationInfo(0)),
+ FrameInfo("task_a", "", LocationInfo(0))
],
task_name=3
)
awaited_by=[
CoroInfo(
call_stack=[
- FrameInfo("nested", "", 0),
- FrameInfo("nested", "", 0)
+ FrameInfo("nested", "", LocationInfo(0)),
+ FrameInfo("nested", "", LocationInfo(0))
],
task_name=6
)
awaited_by=[
CoroInfo(
call_stack=[
- FrameInfo("nested", "", 0),
- FrameInfo("nested", "", 0),
- FrameInfo("task_b", "", 0)
+ FrameInfo("nested", "", LocationInfo(0)),
+ FrameInfo("nested", "", LocationInfo(0)),
+ FrameInfo("task_b", "", LocationInfo(0))
],
task_name=4
)
awaited_by=[
CoroInfo(
call_stack=[
- FrameInfo("awaiter3", "", 0),
- FrameInfo("awaiter2", "", 0),
- FrameInfo("awaiter", "", 0)
+ FrameInfo("awaiter3", "", LocationInfo(0)),
+ FrameInfo("awaiter2", "", LocationInfo(0)),
+ FrameInfo("awaiter", "", LocationInfo(0))
],
task_name=4
),
CoroInfo(
call_stack=[
- FrameInfo("awaiter1_3", "", 0),
- FrameInfo("awaiter1_2", "", 0),
- FrameInfo("awaiter1", "", 0)
+ FrameInfo("awaiter1_3", "", LocationInfo(0)),
+ FrameInfo("awaiter1_2", "", LocationInfo(0)),
+ FrameInfo("awaiter1", "", LocationInfo(0))
],
task_name=5
),
CoroInfo(
call_stack=[
- FrameInfo("awaiter1_3", "", 0),
- FrameInfo("awaiter1_2", "", 0),
- FrameInfo("awaiter1", "", 0)
+ FrameInfo("awaiter1_3", "", LocationInfo(0)),
+ FrameInfo("awaiter1_2", "", LocationInfo(0)),
+ FrameInfo("awaiter1", "", LocationInfo(0))
],
task_name=6
),
CoroInfo(
call_stack=[
- FrameInfo("awaiter3", "", 0),
- FrameInfo("awaiter2", "", 0),
- FrameInfo("awaiter", "", 0)
+ FrameInfo("awaiter3", "", LocationInfo(0)),
+ FrameInfo("awaiter2", "", LocationInfo(0)),
+ FrameInfo("awaiter", "", LocationInfo(0))
],
task_name=7
)
awaited_by=[
CoroInfo(
call_stack=[
- FrameInfo("_aexit", "", 0),
- FrameInfo("__aexit__", "", 0),
- FrameInfo("main", "", 0)
+ FrameInfo("_aexit", "", LocationInfo(0)),
+ FrameInfo("__aexit__", "", LocationInfo(0)),
+ FrameInfo("main", "", LocationInfo(0))
],
task_name=2
)
awaited_by=[
CoroInfo(
call_stack=[
- FrameInfo("_aexit", "", 0),
- FrameInfo("__aexit__", "", 0),
- FrameInfo("main", "", 0)
+ FrameInfo("_aexit", "", LocationInfo(0)),
+ FrameInfo("__aexit__", "", LocationInfo(0)),
+ FrameInfo("main", "", LocationInfo(0))
],
task_name=2
)
awaited_by=[
CoroInfo(
call_stack=[
- FrameInfo("_aexit", "", 0),
- FrameInfo("__aexit__", "", 0),
- FrameInfo("blocho_caller", "", 0),
- FrameInfo("bloch", "", 0)
+ FrameInfo("_aexit", "", LocationInfo(0)),
+ FrameInfo("__aexit__", "", LocationInfo(0)),
+ FrameInfo("blocho_caller", "", LocationInfo(0)),
+ FrameInfo("bloch", "", LocationInfo(0))
],
task_name=8
)
awaited_by=[
CoroInfo(
call_stack=[
- FrameInfo("_aexit", "", 0),
- FrameInfo("__aexit__", "", 0),
- FrameInfo("blocho_caller", "", 0),
- FrameInfo("bloch", "", 0)
+ FrameInfo("_aexit", "", LocationInfo(0)),
+ FrameInfo("__aexit__", "", LocationInfo(0)),
+ FrameInfo("blocho_caller", "", LocationInfo(0)),
+ FrameInfo("bloch", "", LocationInfo(0))
],
task_name=8
)
awaited_by=[
CoroInfo(
call_stack=[
- FrameInfo("_aexit", "", 0),
- FrameInfo("__aexit__", "", 0),
- FrameInfo("blocho_caller", "", 0),
- FrameInfo("bloch", "", 0)
+ FrameInfo("_aexit", "", LocationInfo(0)),
+ FrameInfo("__aexit__", "", LocationInfo(0)),
+ FrameInfo("blocho_caller", "", LocationInfo(0)),
+ FrameInfo("bloch", "", LocationInfo(0))
],
task_name=9
)
awaited_by=[
CoroInfo(
call_stack=[
- FrameInfo("_aexit", "", 0),
- FrameInfo("__aexit__", "", 0),
- FrameInfo("blocho_caller", "", 0),
- FrameInfo("bloch", "", 0)
+ FrameInfo("_aexit", "", LocationInfo(0)),
+ FrameInfo("__aexit__", "", LocationInfo(0)),
+ FrameInfo("blocho_caller", "", LocationInfo(0)),
+ FrameInfo("bloch", "", LocationInfo(0))
],
task_name=9
)
coroutine_stack=[],
awaited_by=[
CoroInfo(
- call_stack=[FrameInfo("main2", "", 0)],
+ call_stack=[FrameInfo("main2", "", LocationInfo(0))],
task_name=5
)
]
coroutine_stack=[],
awaited_by=[
CoroInfo(
- call_stack=[FrameInfo("main2", "", 0)],
+ call_stack=[FrameInfo("main2", "", LocationInfo(0))],
task_name=5
)
]
coroutine_stack=[],
awaited_by=[
CoroInfo(
- call_stack=[FrameInfo("main2", "", 0)],
+ call_stack=[FrameInfo("main2", "", LocationInfo(0))],
task_name=5
)
]
coroutine_stack=[],
awaited_by=[
CoroInfo(
- call_stack=[FrameInfo("main", "", 0)],
+ call_stack=[FrameInfo("main", "", LocationInfo(0))],
task_name=1
)
]
coroutine_stack=[],
awaited_by=[
CoroInfo(
- call_stack=[FrameInfo("main", "", 0)],
+ call_stack=[FrameInfo("main", "", LocationInfo(0))],
task_name=1
)
]
coroutine_stack=[],
awaited_by=[
CoroInfo(
- call_stack=[FrameInfo("main", "", 0)],
+ call_stack=[FrameInfo("main", "", LocationInfo(0))],
task_name=1
)
]
coroutine_stack=[],
awaited_by=[
CoroInfo(
- call_stack=[FrameInfo("main", "", 0)],
+ call_stack=[FrameInfo("main", "", LocationInfo(0))],
task_name=4
)
]
coroutine_stack=[],
awaited_by=[
CoroInfo(
- call_stack=[FrameInfo("main", "", 0)],
+ call_stack=[FrameInfo("main", "", LocationInfo(0))],
task_name=4
)
]
coroutine_stack=[],
awaited_by=[
CoroInfo(
- call_stack=[FrameInfo("main", "", 0)],
+ call_stack=[FrameInfo("main", "", LocationInfo(0))],
task_name=4
)
]
coroutine_stack=[],
awaited_by=[
CoroInfo(
- call_stack=[FrameInfo("awaiter2", "", 0)],
+ call_stack=[FrameInfo("awaiter2", "", LocationInfo(0))],
task_name=4
),
CoroInfo(
- call_stack=[FrameInfo("main", "", 0)],
+ call_stack=[FrameInfo("main", "", LocationInfo(0))],
task_name=2
)
]
coroutine_stack=[],
awaited_by=[
CoroInfo(
- call_stack=[FrameInfo("awaiter", "", 0)],
+ call_stack=[FrameInfo("awaiter", "", LocationInfo(0))],
task_name=3
)
]
awaited_by=[
CoroInfo(
call_stack=[
- FrameInfo("nested", "", 0),
- FrameInfo("nested", "", 0),
- FrameInfo("task_b", "", 0)
+ FrameInfo("nested", "", LocationInfo(0)),
+ FrameInfo("nested", "", LocationInfo(0)),
+ FrameInfo("task_b", "", LocationInfo(0))
],
task_name=4
)
awaited_by=[
CoroInfo(
call_stack=[
- FrameInfo("nested", "", 0),
- FrameInfo("nested", "", 0),
- FrameInfo("task_c", "", 0)
+ FrameInfo("nested", "", LocationInfo(0)),
+ FrameInfo("nested", "", LocationInfo(0)),
+ FrameInfo("task_c", "", LocationInfo(0))
],
task_name=5
),
CoroInfo(
call_stack=[
- FrameInfo("nested", "", 0),
- FrameInfo("nested", "", 0),
- FrameInfo("task_a", "", 0)
+ FrameInfo("nested", "", LocationInfo(0)),
+ FrameInfo("nested", "", LocationInfo(0)),
+ FrameInfo("task_a", "", LocationInfo(0))
],
task_name=3
)
awaited_by=[
CoroInfo(
call_stack=[
- FrameInfo("nested", "", 0),
- FrameInfo("nested", "", 0)
+ FrameInfo("nested", "", LocationInfo(0)),
+ FrameInfo("nested", "", LocationInfo(0))
],
task_name=6
)
awaited_by=[
CoroInfo(
call_stack=[
- FrameInfo("nested", "", 0),
- FrameInfo("nested", "", 0),
- FrameInfo("task_b", "", 0)
+ FrameInfo("nested", "", LocationInfo(0)),
+ FrameInfo("nested", "", LocationInfo(0)),
+ FrameInfo("task_b", "", LocationInfo(0))
],
task_name=4
)
coroutine_stack=[],
awaited_by=[
CoroInfo(
- call_stack=[FrameInfo("main", "", 0)],
+ call_stack=[FrameInfo("main", "", LocationInfo(0))],
task_name=3
)
]
coroutine_stack=[],
awaited_by=[
CoroInfo(
- call_stack=[FrameInfo("main", "", 0)],
+ call_stack=[FrameInfo("main", "", LocationInfo(0))],
task_name=2
)
]
coroutine_stack=[],
awaited_by=[
CoroInfo(
- call_stack=[FrameInfo("main", "", 0)],
+ call_stack=[FrameInfo("main", "", LocationInfo(0))],
task_name=2
)
]
coroutine_stack=[],
awaited_by=[
CoroInfo(
- call_stack=[FrameInfo("main", "", 0)],
+ call_stack=[FrameInfo("main", "", LocationInfo(0))],
task_name=3
)
]
coroutine_stack=[],
awaited_by=[
CoroInfo(
- call_stack=[FrameInfo("main", "", 0)],
+ call_stack=[FrameInfo("main", "", LocationInfo(0))],
task_name=2
)
]
coroutine_stack=[],
awaited_by=[
CoroInfo(
- call_stack=[FrameInfo("main", "", 0)],
+ call_stack=[FrameInfo("main", "", LocationInfo(0))],
task_name=3
)
]
awaited_by=[
CoroInfo(
call_stack=[
- FrameInfo("c1", "", 0),
- FrameInfo("c2", "", 0),
- FrameInfo("c3", "", 0),
- FrameInfo("c4", "", 0),
- FrameInfo("c5", "", 0)
+ FrameInfo("c1", "", LocationInfo(0)),
+ FrameInfo("c2", "", LocationInfo(0)),
+ FrameInfo("c3", "", LocationInfo(0)),
+ FrameInfo("c4", "", LocationInfo(0)),
+ FrameInfo("c5", "", LocationInfo(0))
],
task_name=11
)
coroutine_stack=[],
awaited_by=[
CoroInfo(
- call_stack=[FrameInfo("call1", "", 0)],
+ call_stack=[FrameInfo("call1", "", LocationInfo(0))],
task_name=2
)
]
coroutine_stack=[],
awaited_by=[
CoroInfo(
- call_stack=[FrameInfo("call2", "", 0)],
+ call_stack=[FrameInfo("call2", "", LocationInfo(0))],
task_name=3
)
]
coroutine_stack=[],
awaited_by=[
CoroInfo(
- call_stack=[FrameInfo("call3", "", 0)],
+ call_stack=[FrameInfo("call3", "", LocationInfo(0))],
task_name=1
),
CoroInfo(
- call_stack=[FrameInfo("call4", "", 0)],
+ call_stack=[FrameInfo("call4", "", LocationInfo(0))],
task_name=2
)
]
coroutine_stack=[],
awaited_by=[
CoroInfo(
- call_stack=[FrameInfo("foo", "", 0)],
+ call_stack=[FrameInfo("foo", "", LocationInfo(0))],
task_name=2
)
]
coroutine_stack=[],
awaited_by=[
CoroInfo(
- call_stack=[FrameInfo("loopback", "", 0)],
+ call_stack=[FrameInfo("loopback", "", LocationInfo(0))],
task_name=1
)
]
coroutine_stack=[],
awaited_by=[
CoroInfo(
- call_stack=[FrameInfo("coro", "", 0)],
+ call_stack=[FrameInfo("coro", "", LocationInfo(0))],
task_name=999
)
]
coroutine_stack=[],
awaited_by=[
CoroInfo(
- call_stack=[FrameInfo("frameA", "", 0)],
+ call_stack=[FrameInfo("frameA", "", LocationInfo(0))],
task_name=2
),
CoroInfo(
- call_stack=[FrameInfo("frameA", "", 0)],
+ call_stack=[FrameInfo("frameA", "", LocationInfo(0))],
task_name=3
)
]
coroutine_stack=[],
awaited_by=[
CoroInfo(
- call_stack=[FrameInfo("f1", "", 0)],
+ call_stack=[FrameInfo("f1", "", LocationInfo(0))],
task_name=2
)
]
awaited_by=[
CoroInfo(
call_stack=[
- FrameInfo("f1", "", 0),
- FrameInfo("f2", "", 0)
+ FrameInfo("f1", "", LocationInfo(0)),
+ FrameInfo("f2", "", LocationInfo(0))
],
task_name=2
)