04.03 Документирование
reStructuredText (не Markdown!)
Установка и настройка
Пример из двух файлов и картинки
TODO упростить, календарь сложный Написать простой python-сценарий restcalend.py для преобразования календаря на месяц calendar.month() в таблицу reST, сгенерировать соответствующий файл и положить ссылку на этот файл в основной документ
Включить текст этого сценария в основной документ
Настройка
Формирование индекса
Документирование функций
Переоформить написанный сценарий в виде модуля restcalend:
Классическая структура restcalend/__init__.py / restcalend/__init__.py (для вызова -m)
Предусмотреть указание года и месяца в командной строке
Убрать формирование reST-календаря в функцию restmonth() с параметрами как у calendar.month()
- Задокументировать функцию и весь модуль
Задокументировать использование python3 -m restcalend год месяц в титульном листе
- Включить ссылку на техническую документацию в титульный лист
Д/З
Задача_1. Бродячие монстры и Сфинкс
Скопировать решение Задачи_2 (где выделяются два модуля) с предыдущего занятия. Сделать коммит. Работать на ветке work.
Добавить sphinx в pipenv
- Добавить на сервере MUD поддержку бродячих монстров:
- один раз в 30 секунд выбирается случайный монстр, и он перемещается на одну клетку в случайно выбранном направлении (вправо/влево/вверх/вниз; помним, что поле "закольцовано")
- если в результате перемещения монстр попал бы на клетку, где уже есть монстр, то перемещение НЕ ПРОИСХОДИТ, и проводится повторный выбор монстра и направления; и так пока не будет выполнено успешное перемещение монстра
при перемещении сервер выдаёт всем игрокам сообщение "<имя_монстра> moved one cell <направление>", где <направление> это right, left, up, down. Например: "manticore moved one cell right"
- если монстр попадает на клетку, где есть игрок (или игроки), происходит "энкаунтер" - как если бы игрок(и) сам зашел(ли) на клетку с монстром
- в т.ч. монстр отрисовывается у столкнувшихся с ним игроков, с произнесением приветственной фразы
- Для модуля-сервера задокументировать все функции, классы и модуль в формате autodoc
- Добиться выгонки технической документации по этим классам/функциям/модулю
Следить за тем, чтобы генераты (html-документация) не хранились в git (.gitignore), а настойки shpinx — хранились
- Оформить титульный лист документации (как минимум, скопипастить туда формулировку задачи)
- Сделать в титульном листе ссылку на техническую документацию