Можно ли иметь список параметров в sphinx.ext.napoleon?

Я использую расширение sphinx autodoc вместе с sphinx.ext.napoleon. Я следую руководству по стилю numpydoc, так как считаю его более читабельным, чем у Google. Однако я заметил следующую проблему, которую не смог исправить.

У меня следующий вопрос. Можно ли разрешить в разделе «Параметры» (или «Возвраты» и т. д.) иметь список? Я хотел бы иметь что-то вроде:

ОБНОВЛЕНИЕ Я удалил некоторые первоначальные проблемы в соответствии с ответом Стива Пирси. Вот файл питона:

class Test:

def f(param_1, param_2):

    r"""
    This is a test docstring.

    Parameters
    ----------
    param_1 : pandas data frame
        This would be really cool to allow the following list and make
        it more readable:

        * **index:** Array-like, integer valued representing
          days. Has to be sorted and increasing.
        * **dtype:** float64. Value of temperature.
        * **columns:** location description, e.g. 'San Diego'
    param_2 : int
        nice number!
    """
    pass

К сожалению, это по-прежнему вызывает проблему, заключающуюся в том, что шрифт «Это будет ...» слишком велик и не помещается рядом с param_1, как для param_2:

введите здесь описание изображения

Если я удалю маркированный список, я получу правильно выглядящий результат. Изменение приведенного выше кода на:

class Test:

    def f(param_1, param_2):

        r"""
        This is a test docstring.

        Parameters
        ----------
        param_1 : pandas data frame
            This would be really cool to allow the following list and make
            it more readable: **index:** Array-like, integer valued representing
            days. Has to be sorted and increasing. **dtype:** float64. Value of temperature.
            **columns:** location description, e.g. 'San Diego'
        param_2 : int
            nice number!
        """
        pass

что приводит к следующему правильному выводу:

введите здесь описание изображения

Файл .rst для создания документации выглядит просто:

.. automethod:: test.Test.f

Если я использую numpydoc вместо sphinx.ext.napleon, кажется, я получаю правильный вывод:

введите здесь описание изображения

по крайней мере, шрифт «кадра данных pandas» и «This....» одинаков. Однако я бы предпочел стиль Наполеона, где все меньше и нет серой линии в начале.

Наконец, удаление пустой строки перед маркерами не помогает. Делает хуже:

введите здесь описание изображения


person math    schedule 24.10.2017    source источник


Ответы (1)


Похоже, вы не следуете примеру строки документации Python в стиле NumPy< /а>.

  • В именах параметров не должно быть пробелов.
  • Тип Python должен быть действительным (я не уверен в «кадре данных pandas»,
  • Над param 2 не должно быть пустой строки.
person Steve Piercy    schedule 26.10.2017
comment
большое спасибо за вашу помощь. Я разрешил ваш первый и третий пункт и изменил фрейм данных pandas на int. Тем не менее, я все еще получаю то же самое, что и на картинке выше. - person math; 26.10.2017
comment
Давайте посмотрим код в обновлении вашего вопроса и скриншот. Также удалите все пустые строки, а затем попробуйте временно удалить маркированный список, просто чтобы посмотреть, правильно ли это отображается без списка. IOW известный хороший пример синтаксиса должен отображаться правильно. - person Steve Piercy; 26.10.2017
comment
Я обновил свой ответ полным кодом. Удаление маркированного списка работает. Надеюсь, это полезно. Большое спасибо за вашу помощь - person math; 26.10.2017
comment
Я предполагаю, что синтаксический анализатор задыхается от типа фрейма данных pandas, потому что в нем есть пробелы. Попробуйте удалить пробелы, pandas.data.frame или pandas_data_frame. Это помогает? Пробелы имеют значение, особенно в строках документации. - person Steve Piercy; 26.10.2017
comment
Я даже изменил его на int как для param_2, но я получаю тот же результат (большой шрифт, а не рядом с -. - person math; 26.10.2017
comment
Да, я сделал. Это делает его еще хуже, пожалуйста, посмотрите последнюю добавленную картинку. - person math; 27.10.2017
comment
облом. Ваши варианты: (1) погрузиться в исходный код sphinx.ext.napoleon и Sphinx, чтобы определить и решить синтаксический анализ и рендеринг, затем отправить PR для устранения проблемы, (2) отправить проблему только в соответствующее средство отслеживания проблем, (3) использовать простой старый синтаксис строки документации без расширения, (4) жить с ним или (5) что-то еще. Извините, я исчерпал свои знания. - person Steve Piercy; 28.10.2017
comment
в любом случае спасибо за помощь. очень ценил это. Я мог бы открыть вопрос на github. - person math; 28.10.2017
comment
Ссылка на пример numpy мертва, есть ли обновленная ссылка? - person Ken Williams; 12.11.2019