Replace use of functools.wraps() with six.wraps()
In Python 2.7, functools.wraps() does not provide the '__wrapped__'
attribute. This attribute is used by
oslo_utils.reflection.get_signature() when getting the signature of a
function. If a function is decorated without the '__wrapped__'
attribute then the signature will be of the decorator rather than the
underlying function.
From the six documentation for six.wraps():
This is exactly the functools.wraps() decorator, but it sets the
__wrapped__ attribute on what it decorates as functools.wraps()
does on Python versions after 3.2.
Change-Id: Ic0f7a6be9bc3e474a0229b264d1bfe6c8f7e6d85
This commit is contained in:
@@ -282,7 +282,7 @@ def async_command(command_name, validator=None):
|
||||
def async_decorator(func):
|
||||
func.command_name = command_name
|
||||
|
||||
@functools.wraps(func)
|
||||
@six.wraps(func)
|
||||
def wrapper(self, **command_params):
|
||||
# Run a validator before passing everything off to async.
|
||||
# validators should raise exceptions or return silently.
|
||||
@@ -311,7 +311,7 @@ def sync_command(command_name, validator=None):
|
||||
def sync_decorator(func):
|
||||
func.command_name = command_name
|
||||
|
||||
@functools.wraps(func)
|
||||
@six.wraps(func)
|
||||
def wrapper(self, **command_params):
|
||||
# Run a validator before invoking the function.
|
||||
# validators should raise exceptions or return silently.
|
||||
|
||||
Reference in New Issue
Block a user