| 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()} |