title: Wraps gives TypeError when used in a decorator
body: <p>I created a decorator to print the name of the function it decorates and it works:</p>
  
  <pre><code>&gt;&gt;&gt; def debug(func):
  ...    msg=func.__qualname__
  ...    def wrapper(*args, **kwargs):
  ...       print(msg)
  ...       return func(*args, **kwargs)
  ...    return wrapper
  ... 
  &gt;&gt;&gt; @debug
  ... def add(x, y):
  ...    return x+y
  ... 
  &gt;&gt;&gt; add(1,2)
  add
  3
  </code></pre>
  
  <p>Now I wanted to apply the wraps decorator to the wrapper but when I did I got the error "TypeError: update_wrapper() got multiple values for argument 'wrapped'"</p>
  
  <pre><code>&gt;&gt;&gt; from functools import wraps
  &gt;&gt;&gt;
  &gt;&gt;&gt; def debug(func):
  ...    msg=func.__qualname__
  ...    @wraps
  ...    def wrapper(*args, **kwargs):
  ...       print(msg)
  ...       return func(*args, **kwargs)
  ...    return wrapper
  ... 
  &gt;&gt;&gt; @debug
  ... def add(x, y):
  ...    return x+y
  ... 
  &gt;&gt;&gt; add(1,2)
  Traceback (most recent call last):
    File "&lt;stdin&gt;", line 1, in &lt;module&gt;
  TypeError: update_wrapper() got multiple values for argument 'wrapped'
  &gt;&gt;&gt;
  </code></pre>
  
  <p>What I'm doing wrong and why the error occurs?</p>