04.28 Автоматизация
- Коротко: задача автоматизации
 - Генераты: промежуточные и целевые
 
 / 
 Принципы (на примере выгонки документации). В этом упражнении каждый участник модифицирует собственный текст, так что оно одновременно и 
 , и 
 Скопировать любое решение, в котором применяется Shpinx (например, Задание 0 из практикума по документированию)
Установить doit и создать простейший dodo.py с заданием docs, независимо ни от чего собирающем документацию
Написать задание erase, которое удаляет всё лишнее (
 не забыть сначала закоммитить всё!). Добавить вызов заданий по умолчанию (DOIT_CONFIG = {"default_tasks": ['docs']}) Использовать файловые зависимости, чтобы документация перегенерировалась только при изменении исходных файлов (обычно это .rst и .py, если используется autodoc)
 Написать задание zip, которое создаёт zip-архив с документацией, используя зависимости между заданиями 
 Использовать целевые файлы для автоматического определения зависимостей на них: написать задание stat, которое генерирует файл с именем zip-архива и расширением .list. Файл должен содержать оглавление архива (создаётся с помощью python3 -m zipfile -l архив). 
 Переписать задание stat на Python (см. тут) (Для отработки примера достаточно воспользоваться ZipFile.namelist) 
 Использовать подзадания задание docs генерирует sphinx-ом и html, и text
TODO Если успеем. На самом деле всё это после переработки появилось в предыдущем задании (кроме запуска).
 Скопировать любое задание с переводом (например, решение Задания 0 из позапрошлого семинара) - автоматизировать перевод: 
pot Выгонку шаблона (.pot)
po Обновление перевода по шаблону
mo Выгонку скомпилированного перевода
образец описания целей для автоматизации перевода смотрите здесь, можно копировать куски doit-файла
 
 Сделать удаление промежуточных генератов (целевые, например, .mo, оставить) 
 Сделать тестовый запуск по заданию из dodo.py (проверить, что перевод собрался и работает) 
- автоматизировать перевод: 
 
Д/З
 Задача_1. Автоматизация сборки для MUD. 
Скопировать решение Задачи_1 с предыдущего занятия. Сделать коммит. Работать на ветке work.
реализовать цель i18n для полной генерации перевода
- реализовать цели-шаги генерации перевода, как в описанном выше упражнении
 цель i18n должна зависеть от этих целей-шагов
реализовать цель html для генерации html-документации
реализовать цель test для прогона тестов связки клиент+сервер (зависит от цели i18n, потому что проверяет русифицированные ответы сервера)
для каждой цели реализовать удаление генератов (использовать атрибут clean и функцию clean_targets; для удаления каталога с документацией использовать функцию shutil.rmtree)
цель по умолчанию: html
