Welcome, guest | Sign In | My Account | Store | Cart
#!/usr/bin/python
# -*- coding: utf-8 -*-

# Recipe
# ----------------------------------------------------------------------------

class recipe:
    @staticmethod
    def enter_event(notified_f):
        def wrapper(f):
            def caller(obj, *args, **kargs):
                notified_f(obj, *args, **kargs)
                ret = f(obj, *args, **kargs)
                return ret
            return caller
        return wrapper
    
    @staticmethod
    def exit_event(notified_f):
        def wrapper(f):
            def caller(obj, *args, **kargs):
                # Start of diff between enter_event
                ret = f(obj, *args, **kargs)
                notified_f(obj, *args, **kargs)
                # End of diff between enter_event
                return ret
            return caller
        return wrapper

# Tests
# ----------------------------------------------------------------------------

class c:
    def notify_entering(self, *args, **kargs):
        print '  - function notify_entering() is triggered :'
        print '    - self  : [%s]' % self
        print '    - args  : %s' % repr(args)
        print '    - kargs : %s' % repr(kargs)
        print
    
    def notify_exiting(self, *args, **kargs):
        print '  - function notify_exiting() is triggered :'
        print '    - self : [%s]' % self
        print '    - args  : %s' % repr(args)
        print '    - kargs : %s' % repr(kargs)
        print
    
    # Method
    @recipe.enter_event(notify_entering)
    @recipe.exit_event(notify_exiting)
    def f(self, x):
        print '  - inside o.f() ...'
        print '    - self = [%s]' % self
        print '    - x = [%s]' % x
        print
    
    # Class method
    @classmethod
    @recipe.enter_event(notify_entering)
    @recipe.exit_event(notify_exiting)
    def fclass(cls, x):
        print '  - inside o.fclass() ...'
        print '    - cls = [%s]' % cls
        print '    - x = [%s]' % x
        print
    
    # Static method
    @staticmethod
    @recipe.enter_event(notify_entering)
    @recipe.exit_event(notify_exiting)
    def fstatic(x):
        print '  - inside o.fstatic() ...'
        print '    - x = [%s]' % x
        print

if __name__ == '__main__':
    o = c()

    print '-' * 78
    print '- calling o.f(123) ...'
    o.f(123)
    
    print '-' * 78
    print '- calling o.fclass(234) ...'
    o.fclass(234)
    
    print '-' * 78
    print '- calling o.fstatic(345) ...'
    o.fstatic(345)

Diff to Previous Revision

--- revision 8 2012-08-17 13:48:46
+++ revision 9 2012-08-22 17:57:12
@@ -5,85 +5,85 @@
 # ----------------------------------------------------------------------------
 
 class recipe:
-	@staticmethod
-	def enter_event(notified_f):
-		def wrapper(f):
-			def caller(obj, *args, **kargs):
-				notified_f(obj, *args, **kargs)
-				ret = f(obj, *args, **kargs)
-				return ret
-			return caller
-		return wrapper
-	
-	@staticmethod
-	def exit_event(notified_f):
-		def wrapper(f):
-			def caller(obj, *args, **kargs):
-				# Start of diff between enter_event
-				ret = f(obj, *args, **kargs)
-				notified_f(obj, *args, **kargs)
-				# End of diff between enter_event
-				return ret
-			return caller
-		return wrapper
+    @staticmethod
+    def enter_event(notified_f):
+        def wrapper(f):
+            def caller(obj, *args, **kargs):
+                notified_f(obj, *args, **kargs)
+                ret = f(obj, *args, **kargs)
+                return ret
+            return caller
+        return wrapper
+    
+    @staticmethod
+    def exit_event(notified_f):
+        def wrapper(f):
+            def caller(obj, *args, **kargs):
+                # Start of diff between enter_event
+                ret = f(obj, *args, **kargs)
+                notified_f(obj, *args, **kargs)
+                # End of diff between enter_event
+                return ret
+            return caller
+        return wrapper
 
 # Tests
 # ----------------------------------------------------------------------------
 
 class c:
-	def notify_entering(self, *args, **kargs):
-		print '  - function notify_entering() is triggered :'
-		print '    - self  : [%s]' % self
-		print '    - args  : %s' % repr(args)
-		print '    - kargs : %s' % repr(kargs)
-		print
-	
-	def notify_exiting(self, *args, **kargs):
-		print '  - function notify_exiting() is triggered :'
-		print '    - self : [%s]' % self
-		print '    - args  : %s' % repr(args)
-		print '    - kargs : %s' % repr(kargs)
-		print
-	
-	# Method
-	@recipe.enter_event(notify_entering)
-	@recipe.exit_event(notify_exiting)
-	def f(self, x):
-		print '  - inside o.f() ...'
-		print '    - self = [%s]' % self
-		print '    - x = [%s]' % x
-		print
-	
-	# Class method
-	@classmethod
-	@recipe.enter_event(notify_entering)
-	@recipe.exit_event(notify_exiting)
-	def fclass(cls, x):
-		print '  - inside o.fclass() ...'
-		print '    - cls = [%s]' % cls
-		print '    - x = [%s]' % x
-		print
-	
-	# Static method
-	@staticmethod
-	@recipe.enter_event(notify_entering)
-	@recipe.exit_event(notify_exiting)
-	def fstatic(x):
-		print '  - inside o.fstatic() ...'
-		print '    - x = [%s]' % x
-		print
+    def notify_entering(self, *args, **kargs):
+        print '  - function notify_entering() is triggered :'
+        print '    - self  : [%s]' % self
+        print '    - args  : %s' % repr(args)
+        print '    - kargs : %s' % repr(kargs)
+        print
+    
+    def notify_exiting(self, *args, **kargs):
+        print '  - function notify_exiting() is triggered :'
+        print '    - self : [%s]' % self
+        print '    - args  : %s' % repr(args)
+        print '    - kargs : %s' % repr(kargs)
+        print
+    
+    # Method
+    @recipe.enter_event(notify_entering)
+    @recipe.exit_event(notify_exiting)
+    def f(self, x):
+        print '  - inside o.f() ...'
+        print '    - self = [%s]' % self
+        print '    - x = [%s]' % x
+        print
+    
+    # Class method
+    @classmethod
+    @recipe.enter_event(notify_entering)
+    @recipe.exit_event(notify_exiting)
+    def fclass(cls, x):
+        print '  - inside o.fclass() ...'
+        print '    - cls = [%s]' % cls
+        print '    - x = [%s]' % x
+        print
+    
+    # Static method
+    @staticmethod
+    @recipe.enter_event(notify_entering)
+    @recipe.exit_event(notify_exiting)
+    def fstatic(x):
+        print '  - inside o.fstatic() ...'
+        print '    - x = [%s]' % x
+        print
 
 if __name__ == '__main__':
-	o = c()
-	
-	print '-' * 78
-	print '- calling o.f(123) ...'
-	o.f(123)
-	
-	print '-' * 78
-	print '- calling o.fclass(234) ...'
-	o.fclass(234)
-	
-	print '-' * 78
-	print '- calling o.fstatic(345) ...'
-	o.fstatic(345)
+    o = c()
+
+    print '-' * 78
+    print '- calling o.f(123) ...'
+    o.f(123)
+    
+    print '-' * 78
+    print '- calling o.fclass(234) ...'
+    o.fclass(234)
+    
+    print '-' * 78
+    print '- calling o.fstatic(345) ...'
+    o.fstatic(345)

History