Я запускаю проект Python с открытым исходным кодом в ближайшее время, и я пытаюсь заранее решить, как писать мои docstrings. Очевидным ответом будет использование reStructuredText и Sphinx с autodoc, потому что мне очень нравится идея просто правильно документировать мой код в моих документах, а затем Sphinx автоматически создает для меня документ API.
Проблема заключается в синтаксисе reStructuredText, который он использует - я думаю, что он полностью нечитабелен перед его визуализацией. Например:
:param path: The path of the file to wrap
:type path: str
:param field_storage: The :class:`FileStorage` instance to wrap
:type field_storage: FileStorage
:param temporary: Whether or not to delete the file when the File instance
    is destructed
:type temporary: bool
Вы должны действительно замедлить ход и потратить минуту, чтобы понять смысл синтаксического беспорядка. Мне больше нравится Google (Руководство по стилю Google Python), который аналогичен приведенному выше:
Args:
    path (str): The path of the file to wrap
    field_storage (FileStorage): The FileStorage instance to wrap
    temporary (bool): Whether or not to delete the file when the File
        instance is destructed
Путь приятнее! Но, конечно, Sphinx не будет иметь ничего из этого и отобразит весь текст после "Args:" в одной длинной строке.
Итак, чтобы подвести итог - прежде чем я перейду и дефинирую свою базу кода с помощью этого синтаксиса reStructuredText, я хотел бы знать, есть ли какие-либо реальные альтернативы его использованию и Sphinx, не говоря уже о написании моего собственного документа API. Например, существует ли расширение для Sphinx, которое обрабатывает стиль docstring стиля стиля Google?