90e5ec5f5848d0e76e286b1c3910f5abf27d679b
[wolnelektury.git] / src / wolnelektury / management / profile.py
1
2 import cProfile
3 import functools
4 import os
5
6 _object = None
7
8 def profile(meth):
9     def _wrapper(self, *args, **kwargs):
10         object = self
11         setattr(object, "__%s" % meth.__name__, meth)
12         cProfile.runctx('object.__%s(object, *args, **kwargs)' % (meth.__name__, ), globals(), locals(),
13             "profile.%d" % os.getpid())
14
15     functools.update_wrapper(_wrapper, meth)
16     return _wrapper
17