[Neo-report] r2682 jm - in /trunk/neo: client/ lib/ storage/handlers/

nobody at svn.erp5.org nobody at svn.erp5.org
Tue Mar 22 11:27:26 CET 2011


Author: jm
Date: Tue Mar 22 11:27:26 2011
New Revision: 2682

Log:
Define well-behaved decorators using 'functools.wraps'

Modified:
    trunk/neo/client/Storage.py
    trunk/neo/lib/connection.py
    trunk/neo/lib/dispatcher.py
    trunk/neo/lib/live_debug.py
    trunk/neo/lib/pt.py
    trunk/neo/storage/handlers/replication.py

Modified: trunk/neo/client/Storage.py
==============================================================================
--- trunk/neo/client/Storage.py [iso-8859-1] (original)
+++ trunk/neo/client/Storage.py [iso-8859-1] Tue Mar 22 11:27:26 2011
@@ -15,6 +15,7 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
 
+from functools import wraps
 from ZODB import BaseStorage, ConflictResolution, POSException
 from zope.interface import implements
 import ZODB.interfaces
@@ -32,7 +33,7 @@ def check_read_only(func):
         if self._is_read_only:
             raise POSException.ReadOnlyError()
         return func(self, *args, **kw)
-    return wrapped
+    return wraps(func)(wrapped)
 
 class DummyCache(object):
     def __init__(self, app):

Modified: trunk/neo/lib/connection.py
==============================================================================
--- trunk/neo/lib/connection.py [iso-8859-1] (original)
+++ trunk/neo/lib/connection.py [iso-8859-1] Tue Mar 22 11:27:26 2011
@@ -15,6 +15,7 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
 
+from functools import wraps
 from time import time
 
 import neo.lib
@@ -44,7 +45,7 @@ def not_closed(func):
         if self.connector is None:
             raise ConnectorConnectionClosedException
         return func(self, *args, **kw)
-    return decorator
+    return wraps(func)(decorator)
 
 
 def lockCheckWrapper(func):
@@ -67,7 +68,7 @@ def lockCheckWrapper(func):
                 self.__class__.__name__, ''.join(traceback.format_stack()))
         # Call anyway
         return func(self, *args, **kw)
-    return wrapper
+    return wraps(func)(wrapper)
 
 class OnTimeout(object):
     """

Modified: trunk/neo/lib/dispatcher.py
==============================================================================
--- trunk/neo/lib/dispatcher.py [iso-8859-1] (original)
+++ trunk/neo/lib/dispatcher.py [iso-8859-1] Tue Mar 22 11:27:26 2011
@@ -15,6 +15,7 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
 
+from functools import wraps
 from neo.lib.locking import Lock, Empty
 from neo.lib.profiling import profiler_decorator
 EMPTY = {}
@@ -39,7 +40,7 @@ def giant_lock(func):
             return func(self, *args, **kw)
         finally:
             self.lock_release()
-    return wrapped
+    return wraps(func)(wrapped)
 
 class Dispatcher:
     """Register a packet, connection pair as expecting a response packet."""

Modified: trunk/neo/lib/live_debug.py
==============================================================================
--- trunk/neo/lib/live_debug.py [iso-8859-1] (original)
+++ trunk/neo/lib/live_debug.py [iso-8859-1] Tue Mar 22 11:27:26 2011
@@ -20,6 +20,7 @@ import signal
 import ctypes
 import imp
 import os
+from functools import wraps
 import neo
 
 # WARNING: This module should only be used for live application debugging.
@@ -53,7 +54,7 @@ def decorate(func):
             # "debug" module don't kill process.
             traceback.print_exc()
         errno.value = old_errno
-    return decorator
+    return wraps(func)(decorator)
 
 @decorate
 def debugHandler(sig, frame):

Modified: trunk/neo/lib/pt.py
==============================================================================
--- trunk/neo/lib/pt.py [iso-8859-1] (original)
+++ trunk/neo/lib/pt.py [iso-8859-1] Tue Mar 22 11:27:26 2011
@@ -15,6 +15,7 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
 
+from functools import wraps
 import neo
 
 from neo.lib import protocol
@@ -340,7 +341,7 @@ def thread_safe(method):
             return method(self, *args, **kwargs)
         finally:
             self.unlock()
-    return wrapper
+    return wraps(method)(wrapper)
 
 
 class MTPartitionTable(PartitionTable):

Modified: trunk/neo/storage/handlers/replication.py
==============================================================================
--- trunk/neo/storage/handlers/replication.py [iso-8859-1] (original)
+++ trunk/neo/storage/handlers/replication.py [iso-8859-1] Tue Mar 22 11:27:26 2011
@@ -16,6 +16,7 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
 
+from functools import wraps
 import neo.lib
 
 from neo.lib.handler import EventHandler
@@ -71,12 +72,9 @@ Both part follow the same mechanism:
 def checkConnectionIsReplicatorConnection(func):
     def decorator(self, conn, *args, **kw):
         if self.app.replicator.isCurrentConnection(conn):
-            result = func(self, conn, *args, **kw)
-        else:
-            # Should probably raise & close connection...
-            result = None
-        return result
-    return decorator
+            return func(self, conn, *args, **kw)
+        # Should probably raise & close connection...
+    return wraps(func)(decorator)
 
 class ReplicationHandler(EventHandler):
     """This class handles events for replications."""




More information about the Neo-report mailing list