Manually update wrapper

The functools.update_wrapper seems to set the __signature__ which makes
some cool stuff impossible.