Python Docstring: повышение по сравнению с рейзами

Я использую среду PyCharm, которая помогает с созданием согласованных с PEP0257 докстеров. Он предоставляет два атрибута, которые я не совсем понимаю различие/использование между:

  • :raise Exception: exception explanation here
  • :raises Exception: exception explanation here

Когда я буду использовать raise как противопоставляющий raises в моей docstring? В частности, если классу требуется аргумент, который не был предоставлен, и возникает сообщение TypeError, которое должно использоваться для документирования этого?

Ответы

Ответ 1

TL; DR

raises используется для описания возможных исключений. raise распознается Sphinx при запуске autodoc и совпадает с raises.

Полное объяснение

PyCharm помогает использовать несколько разных стилей комментариев docstring.

Три, которые я часто использую:

Во всех этих случаях существует специальный раздел для raises, который вы можете увидеть в старой версии тестов кода PyCharm:

Реализация для SphinxDocString мы можем видеть здесь, есть многочисленные ключевые слова, которые можно распознать. Затем те теги ссылаются на список RAISES_TAGS, который можно найти здесь.

Я надеюсь, что эта информация полезна.

Ответ 2

Вы должны использовать raises для описания исключений, вызванных вашим методом/классом.

:raises:
    Exception: Explanation here.

Например, для исключения ValueError:

:raises:
    ValueError: if fft_data is empty.