V
Vito De Tullio
Hi
I was writing a decorator and lost half an hour for a stupid bug in my code,
but honestly the error the python interpreter returned to me doesn't
helped...
$ python3
Python 3.3.0 (default, Feb 24 2013, 09:34:27)
[GCC 4.7.2] on linux
Type "help", "copyright", "credits" or "license" for more information..... @wraps
.... def ret(*args, **kwargs):
.... return fun(*args, **kwargs)
.... return ret
........ def fun(): pass
....Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: update_wrapper() missing 1 required positional argument:
'wrapper'$
Soo... at a first glance, no tricks... can you tell where is the error?
As I said, the error is totally mine, I just forgot to pass the function as
parameter to wraps. But... what is "update_wrapper()"? and "wrapper"? There
is no useful traceback or something... just... this.
Ok, the documentation clearly says:
This is a convenience function to simplify applying partial() to
update_wrapper().
So, again, shame on me... I just read carefully the doc *after* 20 minutes
trying everything else... still... I think should be useful if wraps()
intercept this error saying something more explicit about the missing fun
parameter...
I was writing a decorator and lost half an hour for a stupid bug in my code,
but honestly the error the python interpreter returned to me doesn't
helped...
$ python3
Python 3.3.0 (default, Feb 24 2013, 09:34:27)
[GCC 4.7.2] on linux
Type "help", "copyright", "credits" or "license" for more information..... @wraps
.... def ret(*args, **kwargs):
.... return fun(*args, **kwargs)
.... return ret
........ def fun(): pass
....Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: update_wrapper() missing 1 required positional argument:
'wrapper'$
Soo... at a first glance, no tricks... can you tell where is the error?
As I said, the error is totally mine, I just forgot to pass the function as
parameter to wraps. But... what is "update_wrapper()"? and "wrapper"? There
is no useful traceback or something... just... this.
Ok, the documentation clearly says:
This is a convenience function to simplify applying partial() to
update_wrapper().
So, again, shame on me... I just read carefully the doc *after* 20 minutes
trying everything else... still... I think should be useful if wraps()
intercept this error saying something more explicit about the missing fun
parameter...