53cc82a6043a3c910f80bf2167cc6f51236cd3b8
[pdm.git] / pdm / util.py
1 """Python Daemon Management -- Miscellaneous utilities
2
3 This module contains various functions that may be useful to call from
4 the PDM REPL.
5 """
6
7 import sys, traceback, threading
8
9 def 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
14 def 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())