Как ввести параметры декоратора в строку документации? - PullRequest
1 голос
/ 11 апреля 2019

Я использую определенный шаблон декоратора в своем 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.

...