Added a simple utilities file.
authorFredrik Tolf <fredrik@dolda2000.com>
Mon, 7 Jan 2013 07:02:30 +0000 (08:02 +0100)
committerFredrik Tolf <fredrik@dolda2000.com>
Mon, 7 Jan 2013 07:02:30 +0000 (08:02 +0100)
pdm/util.py [new file with mode: 0644]

diff --git a/pdm/util.py b/pdm/util.py
new file mode 100644 (file)
index 0000000..53cc82a
--- /dev/null
@@ -0,0 +1,16 @@
+"""Python Daemon Management -- Miscellaneous utilities
+
+This module contains various functions that may be useful to call from
+the PDM REPL.
+"""
+
+import sys, traceback, threading
+
+def threads():
+    "Returns a dict of currently known threads, mapped to their respective frames."
+    tt = dict((th.ident, th) for th in threading.enumerate())
+    return dict((tt.get(key, key), val) for key, val in sys._current_frames().iteritems())
+
+def traces():
+    "Returns the value of threads() with each frame expanded to a backtrace."
+    return dict((th, traceback.extract_stack(frame)) for th, frame in threads().iteritems())