Author: duncan
Date: Fri Mar 14 18:01:08 2008
New Revision: 10525
Log:
The level needs to be come from a singleton class
Not sure about the __incr__ and __decr__ functions :-/
Modified:
branches/rel-1/freevo/src/util/timed.py
Modified: branches/rel-1/freevo/src/util/timed.py
==============================================================================
--- branches/rel-1/freevo/src/util/timed.py (original)
+++ branches/rel-1/freevo/src/util/timed.py Fri Mar 14 18:01:08 2008
@@ -31,6 +31,28 @@
import time
+_singleton = None
+
+def level():
+ global _singleton
+ if _singleton is None:
+ _singleton = Level()
+ return _singleton
+
+
+class Level:
+ level = 0
+ def __call__(self):
+ return self.level
+
+ def __incr__(self):
+ self.level += 1
+
+ def __decr__(self):
+ self.level -= 1
+
+
+
class timed:
"""
A decorator class to time function calls
@@ -42,19 +64,19 @@
"""
self.reset = reset
self.start = time.time()
- self.level = 0
+ self.level = level()
def __call__(self, func):
def newfunc(*args, **kwargs):
- pre = ' ' * self.level
- self.level += 1
+ pre = ' ' * self.level()
+ self.level.__incr__()
if self.reset:
self.start = time.time()
print '%s-> %s' % (pre, func.__name__)
result = func(*args, **kwargs)
print '%s<- %s: %.3f' % (pre, func.__name__, time.time() -
self.start)
- self.level -= 1
+ self.level.__decr__()
return result
newfunc.__name__ = func.__name__
newfunc.__doc__ = func.__doc__
-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2008.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
Freevo-cvslog mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/freevo-cvslog