a little more explicative error message?

Vito De Tullio vito.detullio at gmail.com
Tue Jul 16 07:44:45 CEST 2013


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.
>>> from functools import wraps
>>> def dec(fun):
...  @wraps
...  def ret(*args, **kwargs):
...   return fun(*args, **kwargs)
...  return ret
...
>>> @dec
... def fun(): pass
...
>>> fun()
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? :D



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...

-- 
ZeD




More information about the Python-list mailing list