Package: pyneng-cli-course
pynengУстановка и запускУстановить модульpip install pyneng-cli-courseПосле этого проверка заданий вызывается через утилиту pyneng в CLI.Этапы работы с заданиямиВыполнение заданийПроверка, что задание отрабатывает как нужноpython task_4_2.pyили запуск скрипта в редакторе/IDEПроверка заданий тестамиpyneng 1-5Если тесты проходят, смотрим варианты решенияpyneng 1-5 -aСдача заданий на проверкуpyneng 1-5 -cВторой шаг очень важен, потому что на этом этапе намного проще найти ошибки в синтаксисе
и подобные проблемы с работой скрипта, чем при запуске кода через тест на 3 этапе.Проверка заданий тестамиПосле выполнения задания, его надо проверить с помощью тестов.
Для запуска тестов, надо вызвать pyneng в каталоге заданий.
Например, если вы делаете 4 раздел заданий, надо находиться в каталоге exercises/04_data_structures/
и запустить pyneng одним из способов, в зависимости от того какие задания на проверять.Примеры вывода тестов с пояснениямиЗапуск проверки всех заданий текущего раздела:pynengЗапуск тестов для задания 4.1:pyneng 1Запуск тестов для заданий 4.1, 4.2, 4.3:pyneng 1-3Если есть задания с буквами, например, в 7 разделе, можно запускать так,
чтобы запустить проверку для заданий 7.2a, 7.2b (надо находиться в каталоге 07_files):pyneng 2a-bили так, чтобы запустить все задания 7.2x с буквами и без:pyneng 2*Получение ответовЕсли задания проходят тесты, можно посмотреть варианты решения заданий.Для этого к предыдущим вариантам команды надо добавить-a.
Такой вызов значит запустить тесты для заданий 1 и 2 и скопировать ответы, если тесты прошли:pyneng 1-2 -aТогда для указанных заданий запустятся тесты и для тех заданий из них,
которые прошли тесты, скопируются ответы в файлы answer_task_x.py в текущем каталоге.Файлы ответов по умолчанию не добавляются на github.
Файлы ответов можно:удалятьдобавлять на githubpyneng 1-3 -c --all(--allдобавляет все файлы в текущем
каталоге и подкаталогахgit add ., то есть добавит все файл)добавить в.gitignore, чтобы они были локально, но не светились в репозитории.
Для этого нужно добавить строкуanswer_task*в файл.gitignoreДобавлять файлы в git есть смысл, если в них что-то писать. Например, комментарии
для себя по каким-то непонятным моментам.Сдача заданий на проверкуДля сдачи задания на проверку, надо сгенерировать токен на Github.
Как это сделать написано в инструкцииПодготовка к работе с заданиямиПосле того как задания прошли тесты и вы посмотрели варианты решения заданий,
можно сдавать задания на проверку.Для этого надо добавить-cк вызову pyneng:
Такой вызов значит запустить тесты для заданий 1 и 2 и сдать их на проверку, если тесты прошли:pyneng 1-2 -cЗапустить тесты для всех заданий и сдать их на проверку, если тесты прошли:pyneng -cПри добавлении-cpyneng делает git add файлам заданий, которые прошли тесты, делает commit,
и git push. После этого пишет комментарий на github, что задания такие-то сданы на проверку.Запустить тесты и сдать на проверку задания,
которые прошли тесты, но при этом загрузить на github все изменения
в текущем каталоге:pyneng 1-5 -c --allЗагрузить все изменения в текущем каталоге на github, без привязки к тому проходят ли тестыpyneng --save-allВыполняет командыgit add .
git commit -m "Все изменения сохранены"
git push origin mainОбновление разделовВ pyneng есть два варианта обновления: обновлять разделами или конкретные
задания/тесты.  При обновлении раздела, каталог раздела удаляется и копируется
новая версия. Это подходит только для тех разделов, которые вы еще не начинали
выполнять. Если надо обновить конкретное задание, лучше использовать обновление
конкретных заданий (рассматривается дальше).Перед любым вариантом обновления желательно сохранить все локальные изменения
на github!Для обновления разделов, надо перейти в каталог online-x-имя-фамилия/exercises/
и дать команду:pyneng --update-chapters 12-25В этом случае обновятся разделы 12-25. Также можно указывать один раздел:pyneng --update-chapters 11Или несколько через запятуюpyneng --update-chapters 12,15,17Обновление заданий и тестовВ заданиях и тестах встречаются неточности и чтобы их можно было исправить,
pyneng добавлена опция--update.Общая логика:задания и тесты копируются из репозиторияhttps://github.com/pyneng/pyneng-course-tasksкопируется весь файл задания, не только описание, поэтому файл перепишетсяперед выполнением --update, лучше созранить все изменения на githubКак работает --updateесли в репозитории есть несохраненные измененияутилита предлагает их сохранить (сделаетgit add .,git commit,git push)если несохраненных изменений нет, копируются указанные задания и тестыутилита предлагает сохранить изменения и показывает какие файлы изменены, но не какие именно сделаны измененияможно отказаться сохранять изменения и посмотреть изменения git diffВарианты вызоваОбновить все задания и тесты раздела:pyneng --updateОбновить все тесты раздела (только тесты, не задания):pyneng --update --test-onlyОбновить задания 1,2 и соответствующие тесты разделаpyneng 1,2 --updateЕсли никаких обновлений нет, будет такой вывод$ pyneng --update
#################### git pull
Already up-to-date.


Обновленные задания и тесты скопированы
Задания и тесты уже последней версии
Aborted!В любой момент можно прервать обновление Ctrl-C.Пример вывода с несохраненными изменениями и наличием обновленийpyneng --update
ОБНОВЛЕНИЕ ТЕСТОВ И ЗАДАНИЕ ПЕРЕЗАПИШЕТ СОДЕРЖИМОЕ НЕСОХРАНЕННЫХ ФАЙЛОВ!
В текущем каталоге есть несохраненные изменения! Хотите их сохранить? [y/n]: y
#################### git add .
#################### git commit -m "Сохранение изменений перед обновлением заданий"
[main 0e8c1cb] Сохранение изменений перед обновлением заданий
 1 file changed, 1 insertion(+)

#################### git push origin main
To git@github.com:pyneng/online-14-natasha-samoylenko.git
   fa338c3..0e8c1cb  main -> main

Все изменения в текущем каталоге сохранены. Начинаем обновление...
#################### git pull
Already up-to-date.


Обновленные задания и тесты скопированы
Были обновлены такие файлы:
#################### git diff --stat
 exercises/04_data_structures/task_4_0.py |  0
 exercises/04_data_structures/task_4_1.py |  1 -
 exercises/04_data_structures/task_4_3.py |  3 ---
 3 files changed, 0 insertions(+), 4 deletions(-)


Это короткий diff, если вы хотите посмотреть все отличия подробно, нажмите n и дайте команду git diff.
Также при желании можно отменить внесенные изменения git checkout -- file (или git restore file).

Сохранить изменения и добавить на github? [y/n]: n
Задания и тесты успешно обновлены
Aborted!