38b0ba059becdca72b95496d32294c729a7f1f4f
[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 = {th.ident: th for th in threading.enumerate()}
12     return {tt.get(key, key): val for key, val in sys._current_frames().items()}
13
14 def traces():
15     "Returns the value of threads() with each frame expanded to a backtrace."
16     return {th: traceback.extract_stack(frame) for th, frame in threads().items()}