Я запускаю проект 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?