diff --git a/requirements-http.txt b/requirements-http.txt --- a/requirements-http.txt +++ b/requirements-http.txt @@ -1,7 +1,6 @@ # requirements for swh.core.api aiohttp aiohttp_utils >= 3.1.1 -decorator Flask iso8601 msgpack >= 1.0.0 diff --git a/swh/core/api/negotiation.py b/swh/core/api/negotiation.py --- a/swh/core/api/negotiation.py +++ b/swh/core/api/negotiation.py @@ -24,10 +24,10 @@ # from collections import defaultdict +import functools from inspect import getcallargs from typing import Any, Callable, DefaultDict, List, NoReturn, Optional, Type -from decorator import decorator from requests import Response @@ -143,14 +143,15 @@ def negotiate( negotiator_cls: Type[Negotiator], formatter_cls: Type[Formatter], *args, **kwargs ) -> Callable: - def _negotiate(f, *args, **kwargs): - return f.negotiator(*args, **kwargs) - - def decorate(f): + def decorator(f): if not hasattr(f, "negotiator"): f.negotiator = negotiator_cls(f) - f.negotiator.register_formatter(formatter_cls, *args, **kwargs) - return decorator(_negotiate, f) - return decorate + @functools.wraps(f) + def newf(*args, **kwargs): + return f.negotiator(*args, **kwargs) + + return newf + + return decorator