functools.wraps копирует метаданные из исходной функции в обертку: ее имя, строку документации, модуль и __wrapped__.
Это важно для:
- правильная отладка и логи;
- самоанализ и документирование;
- совместимость с инструментами, проверяющими сигнатуру функции.
Суммируя:
wraps сохраняет идентичность исходной функции.
- Без него декорированные функции теряют полезные метаданные.
- Это лучшая практика для всех декораторов оберток.
Итог
functools.wraps копирует метаданные из исходной функции в обертку: ее имя, строку документации, модуль и __wrapped__.