Грэм Дамплтон: Написание мастер-класса для JupyterLab
Этот текст описывает создание мастер-класса в JupyterLab, посвященного обучению pytest.
Мастер-класс разработан так, чтобы быть достаточно компактным для размещения в посте блога, но при этом содержать все необходимые элементы настоящего мастер-класса.
Он включает манифест, несколько страниц, интерактивные действия, автоматические проверки, викторину и вспомогательные инструменты.
Мастер-класс обучает фундаментальному циклу pytest: написанию теста, наблюдению его сбоя и последующему исправлению кода.
Этот итеративный процесс структурирован на четырех отдельных страницах мастер-класса.
Ключевой особенностью является создание изолированной среды Python для мастер-класса, гарантирующей установку pytest без влияния на систему учащегося.
Этот подход использует учебные материалы из предыдущего доклада на конференции для улучшения процесса обучения.
Процесс начинается с планирования и определения проверяемых шагов, что отличает мастер-классы от руководств.
Мастер-класс генерируется с помощью команды jupyter workshop init, которая настраивает структуру каталогов и файл манифеста.
Возможности, такие как доступ к терминалу, запись файлов, выполнение кода и установка пакетов, объявляются в манифесте и проверяются линтерами.
Поле environment в манифесте указывает зависимости, такие как pytest, которые устанавливаются в самодостаточную виртуальную среду.
Это позволяет избежать ручной настройки среды, позволяя учащимся сосредоточиться на самом pytest.
Запись env в манифесте также отключает кэширование байт-кода Python, чтобы предотвратить проблемы с быстрыми изменениями файлов.
Мастер-класс использует файл files/orders.py, содержащий намеренно ошибочную функцию для отладки учащимися.
Каждая страница мастер-класса использует Markdown и специальные блоки действий для направления учащегося через такие задачи, как открытие файлов, написание кода и выполнение команд.
Проверки реализованы с помощью действия verify, которое автоматически проверяет результат действий учащегося, обеспечивая прогресс и обучение.
Включено действие quiz для того, чтобы учащиеся предсказывали результаты перед запуском тестов, закрепляя понимание того, как работает pytest.
Действие editor-insert позволяет добавлять и просматривать новый код, например тесты, непосредственно в редакторе.
Структура и содержание мастер-класса разработаны так, чтобы быть интерактивными и образовательными, с акцентом на практическое применение pytest.
jupyter workshop init, которая настраивает структуру каталогов и файл манифеста. Возможности, такие как доступ к терминалу, запись файлов, выполнение кода и установка пакетов, объявляются в манифесте и проверяются линтерами. Полеenvironmentв манифесте указывает зависимости, такие как pytest, которые устанавливаются в самодостаточную виртуальную среду. Это позволяет избежать ручной настройки среды, позволяя учащимся сосредоточиться на самом pytest. Записьenvв манифесте также отключает кэширование байт-кода Python, чтобы предотвратить проблемы с быстрыми изменениями файлов. Мастер-класс использует файлfiles/orders.py, содержащий намеренно ошибочную функцию для отладки учащимися. Каждая страница мастер-класса использует Markdown и специальные блоки действий для направления учащегося через такие задачи, как открытие файлов, написание кода и выполнение команд. Проверки реализованы с помощью действияverify, которое автоматически проверяет результат действий учащегося, обеспечивая прогресс и обучение. Включено действиеquizдля того, чтобы учащиеся предсказывали результаты перед запуском тестов, закрепляя понимание того, как работает pytest. Действиеeditor-insertпозволяет добавлять и просматривать новый код, например тесты, непосредственно в редакторе. Структура и содержание мастер-класса разработаны так, чтобы быть интерактивными и образовательными, с акцентом на практическое применение pytest.