Code layout change.
[wolnelektury.git] / src / wolnelektury / management / profile.py
diff --git a/src/wolnelektury/management/profile.py b/src/wolnelektury/management/profile.py
new file mode 100644 (file)
index 0000000..90e5ec5
--- /dev/null
@@ -0,0 +1,17 @@
+
+import cProfile
+import functools
+import os
+
+_object = None
+
+def profile(meth):
+    def _wrapper(self, *args, **kwargs):
+        object = self
+        setattr(object, "__%s" % meth.__name__, meth)
+        cProfile.runctx('object.__%s(object, *args, **kwargs)' % (meth.__name__, ), globals(), locals(),
+            "profile.%d" % os.getpid())
+
+    functools.update_wrapper(_wrapper, meth)
+    return _wrapper
+