[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