Properly split exception reports into lines.
[pdm.git] / pdm / util.py
CommitLineData
342c8c21
FT
1"""Python Daemon Management -- Miscellaneous utilities
2
3This module contains various functions that may be useful to call from
4the PDM REPL.
5"""
6
7import sys, traceback, threading
8
9def threads():
10 "Returns a dict of currently known threads, mapped to their respective frames."
11 tt = dict((th.ident, th) for th in threading.enumerate())
12 return dict((tt.get(key, key), val) for key, val in sys._current_frames().iteritems())
13
14def traces():
15 "Returns the value of threads() with each frame expanded to a backtrace."
16 return dict((th, traceback.extract_stack(frame)) for th, frame in threads().iteritems())