Зачем обычно добавляют @functools.wraps к wrapper-функции?
Чтобы сохранить имя, документацию и связь с исходной функцией
Чтобы выполнить функцию параллельно
Чтобы автоматически кэшировать результат
Чтобы запретить передачу keyword-аргументов