<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def remove_hooks(target, **hooks):
 """ Remove the given hooks from the given target. :param target: The object from which to remove hooks. If all hooks are removed from a given method, the HookedMethod object will be removed and replaced with the original function. :param hooks: Any keywords will be interpreted as hooks to remove. You must provide the exact hook that was applied so that it can it can be identified for removal among any other hooks. """

        for name, hook in hooks.items():
            hooked = getattr(target, name)
            if hook in hooked.pending:
                try:
                    hooked.pending.remove(hook)
                except ValueError as e:
                    raise ValueError("%s is not hooked by %s" % (target, hook)) from e
            if not hooked.pending:
                setattr(target, name, hooked.func)