Различия между версиями 5 и 6
Версия 5 от 2020-04-14 11:36:06
Размер: 6464
Редактор: FrBrGeorge
Комментарий:
Версия 6 от 2021-04-07 11:03:42
Размер: 6468
Редактор: FrBrGeorge
Комментарий:
Удаления помечены так. Добавления помечены так.
Строка 7: Строка 7:
 * [[pep:257]] и [[pypi:pep257]] для проверки  * [[pep:pep-257]] и [[pypi:pep257]] для проверки

Документирование

Что уже известно:

⇒ Документация для просмотра, но не для публикации

Отступление от темы: Makefile

На Википедии

<!> Внимание: на лекции всё рассказывалось наспех! Могу устроить отдельную, или:

Общая идея:

  • Объекты:
    • Исходники: то, что редактируем и храним
    • Цели: то, что хотим получить
    • Генераты: то, что нужно сгенерировать для получения целей
  • Топологическая зависимость: что из чего делается
    • Например: prog.cprog

    • Или: a1.ca1.o; a2.ca2.o; a1.o, a2.oprog

      • a1.o, a2.o — генераты

  • Рецепт: как что-то из чего-то делается

    • например, как делать .o из .c (при условии, что мы ещё редактируем заголовочный файл inc.h, который включается в file.c):

      file.o:  file.c inc.h
              cc file.c -c -o file.o
    • шаблон рецепта:
      %.o:  %.c
              cc %< -o %@
      где
      • %< — первый из исходников (если нужны используется %^

      • %@ — цель (потому что похоже на мишень, т. е. target)

    • <!> В Makefile обязательны отступы с помощью символов табуляции. Программисты на Python, страдайте!

Подсистема документирования Sphinx

Для начала, их много, подсистем документирования даже на Python.

  • Например, Docutils (язык разметки reStructuredText)

  • Или всевозможные сайтогенераторы, типа
    • MkDocs (разметка: Markdown)

Но, возможно, Sphinx круче всех.

Язык разметки: reStructuredText

Здесь идёт ±воспроизведение методички. Замечания:

  • Инициализация: sphinx-quickstart (возможно, sphinx-quickstart-3)

  • Создаваемые файлы:
    • conf.py — настройка sphinx

    • index.rst — титульная страница с директивами reStructuredText

    • Makefile — чтобы можно было делать make html

sphinx-build-3

  • Я поменял sphinx-build на sphinx-build-3

  • Убрал @ в начале рецептов, чтобы было видно команды

  • В частности, sphinx-build-3 -M html . _build собирает документацию безо всякого Makefile

  • Разделы «Автоматическая сборка» и «Генерация в формат …» можно не читать ☺

Как добавить техническую документацию, выковырянную из исходников:

  • Добавить sphinx.ext.autodoc в config.py:

       1 extensions = [ 'sphinx.ext.autodoc'
       2 ]
    
  • Раскомментировать там же «.» в качестве пути к питоньим модулям (или имя каталога с модулем, если они не в «.»):

       1 import os
       2 import sys
       3 sys.path.insert(0, os.path.abspath('.'))
    
  • Добавить ссылки на нужные модули. Например, в отдельный файл, на который сослаться из index.rst:

       1 Module contents
       2 ===============
       3 
       4 .. automodule:: packa.core
       5  :members:
       6 
       7 .. automodule:: packa.globals
       8  :members:
    

Остальные расширения

Ах, да: Как писать (несложные) тексты в этом вашем Markdown

Д/З

Семестровый проект должен быть (хотя бы отчасти) документирован.

LecturesCMC/PythonDevelopment2020/07_Documetning (последним исправлял пользователь FrBrGeorge 2021-04-07 11:03:42)