Как сделать разрывы строк в длинной сигнатуре функции и красиво отформатировать ее в автодоке Sphinx - PullRequest
0 голосов
/ 10 февраля 2020

У меня есть функция с длинной подписью с подсказкой типа, например

def set_parameters(
        tokenizer: Union[None, "Tokenizer", str] = None,
        vocab: Optional["Vocab"] = None,
        vocab_from: Optional[Dict[str, str]] = None,
        max_sent_length: Optional[int] = None,
        max_turn_length: Optional[int] = None,
        convert_to_lower_letter: Optional[bool] = None,
        weak=False) -> "FieldContext":

Я использую Sphinx autodo c для генерации строки документации.

.. autofunction:: set_parameters

Затем Sphinx будет игнорировать разрыв строки и описание функции в одной строке.

set_parameters(tokenizer: Union[None, Tokenizer, str] = None, vocab: Optional[Vocab] = None, vocab_from: Optional[Dict[str, str]] = None, max_sent_length: Optional[int] = None,    max_turn_length: Optional[int] = None, convert_to_lower_letter: Optional[bool] = None, weak=False) -> FieldContext:

Это очень некрасиво и трудно читать. То, что я хочу, это либо следовать за разрывами строк в моем коде, либо автоматически выполнять некоторые разрывы строк. Есть ли способ реализовать?

1 Ответ

0 голосов
/ 10 февраля 2020

Быстрый и грязный вариант - использовать CSS:

dl.class > dt > em:before {
    content: ' ';
    display: block;
}

Он не идеален или хорош, но, по крайней мере, помещает аргументы в список, который легче визуально сканировать.

...