Обновлены задания и тесты курса/книги “Python для сетевых инженеров”
В репозитории с заданиями к курсу/книге “Python для сетевых инженеров” сделано несколько изменений.
Обновление заданий и тестов
В репозитории с заданиями и примерами кода сделаны такие изменения:
- добавлены тесты для разделов 4-7 и для всех заданий, кроме раздела 25 (базы данных)
- для проверки заданий тестами сделана новая утилита pyneng
- обновлены задания, большинство по мелочам, уточнение формулировки, приведение к одному формату
- удалены несколько заданий: 5.2b, 7.2c
- задание 11.2 разбито на два 11.2 и 11.2a
- изменены задания 18.3 и 19.4
- Файл common_functions.py в каталоге exercises переименован в pyneng_common_functions.py, чтобы не было путанницы с модулем common_functions в PyPi. Если у вас есть и обновленные задания ии старые, оставляйте оба файла в каталоге exercises
Задания в книге обновлены.
Если вы уже делаете задания, можно клонировать репозиторий с заданиями локально и затем вручную скопировать обновленные каталоге себе. Второй вариант - создать новый репозиторий, как написано ниже и скопировать решенные задания в новый репозиторий.
В любом случае, лучше использовать новую версию, так как там исправлены ошибки/неточности и улучшены тесты.
Новая утилита для проверки заданий - pyneng
Утилита pyneng это обычный скрипт pyneng.py, который находится в репозитории заданий pyneng-examples-exercises. После правильной установки скрипта, он будет доступен по имени pyneng в любом каталоге репозитория.
Скрипт упрощает запуск тестов, так как не надо указывать никакие параметры, по умолчанию вывод настроен на подробный и запускается с плагином pytest-clarity, который улучшает diff при отличиях в решении и правильном решении. Также скрываются некоторые вещи, например, warning которые показывает pytest, чтобы не отвлекать от задачи.
Тесты по-прежнему можно запускать с помощью pytest, если вы уже к нему привыкли или ранее использовали. Скрипт pyneng всего лишь обертка вокруг запуска pytest.
Вторая часть работы скрипта - копирование заданий. Эта часть сделана для удобства, чтобы не надо было искать ответы и задумана так, что сначала задание должно пройти тест и только после этого pyneng -a отработает и покажет ответы (скопирует их в текущий каталог). Для копирования ответов, скрипт клонирует репозиторий ответов в домашний каталог пользователя, копирует нужные ответы и удаляет репозиторий ответов.
С утилитой pyneng процесс работы будет выглядеть так:
- Выполнение заданий
- Проверка, что задание отрабатывает как нужно python task_4_2.py или запуск скрипта в редакторе/IDE
- Проверка заданий тестами pyneng 1-5
- Если тесты проходят, смотрим варианты решения pyneng 1-5 -a
Подробнее о том как работать с утилитой
Шаблон репозитория
Репозиторий с заданиями по-прежнему лучше всего использовать как шаблон для создания своего репозитория. Это существенно облегчит создание своего репозитория и будет меньше нюансов при работе с заданиями.
Для создания своего репозитория на основе шаблона нужно:
- залогиниться на GitHub
- открыть репозиторий с заданиями
- нажать “Use this template” и создать новый репозиторий на основе этого шаблона
- в открывшемся окне надо ввести название репозитория
- после этого готов новый репозиторий с копией всех файлов из исходного репозитория с заданиями