Я использую определенный шаблон декоратора в своем API, который выглядит примерно так (упрощенно):
@api(
path='/double',
method='GET',
input={'x': int},
output={'x_double': int}
)
def double(x):
"""
This endpoint doubles the number you give it.
Args:
x: (int) the number you want to double
Returns:
x_double: (int) x * 2
"""
return jsonify({'x_double': x*2})
Я использую Sphinx для генерации моих документов.Я хочу добавить параметры декоратора в строку документации функции, которую он декорирует.Для приведенного выше примера я ожидаю, что документация будет выглядеть следующим образом:
mypackage.something module
mypackage.something.double(x)
This endpoint doubles the number you give it.
Attributes:
path: /double
method: GET
Args:
x: (int) the number you want to double
Returns:
x_double: (int) x * 2
Как этого добиться?Я думал о написании сценария, который внедряет их в сгенерированные документы, но мне было интересно, если есть, возможно, более простой способ?
Кроме того, да, декоратор использует functools.wraps
.