Структура git-репозитория для практикума 2023 г. по Python
Регистрация
В первом семестре
После создания репозитория его следует зарегистрировать здесь: https://git.cs.msu.ru/gkuryachiy/prac/-/issues/7
- Если у вас не аккаунта на git.cs.msu.ru, используйте гостевой
- Указать ФИО и группу
Базовый каталог
Каталог для практикума в git-репозитории должен называться pythonprac. Далее все пути указаны, считая от этого каталога.
Репозиторий должен быть публичный
- Во втором семестре используется тот же репозиторий
Всё, что вы сделали за время занятия, следует публиковать в этом репозитории в день занятия
Все решения и тесты должны быть опубликованы в репозитории до окончания дедлайна по заданию
Правила именования
Для каждого семинара создается каталог с именем вида <ГГГГММДД> (выдача команды date "+%Y%m%d"), дата - того семинара, на котором выдано задание.
Все программы, написанные во время занятия, записываются в каталог <ГГГГММДД>/0
Для каждого задания создаются подкаталоги <ГГГГММДД>/1, <ГГГГММДД>/2 и т. д.
В подкаталоге содержатся:
ровно один .py-файл с текстом решения, имя файла должно быть prog.py
подкаталог check/, в котором хранятся примеры входных данных и эталонного вывода (если нужны по заданию).
Работа с ветками во втором семестре
Все задания во втором семестре выполняются на ветке с именем «work» (маленькими буквами); задание может включать в себя другие ветки
TODO как сделать work веткой по умолчанию
Подсистема проверки домашних заданий:
hworker-0.9.2-py3-none-any.whl
скачиваем, делаем pip install hworker-0.9.2-py3-none-any.whl (Python 3.11)
- Запуск:
hworker -p из каталога с решением или hworker -p каталог-с решением
например, hworker -p pythonprac/20231017/1
Пример:
20210903/1
prog.py
check/
1.in
1.out
2.in
2.out
- …
Как написать тест на класс/функцию?
- К файлу с классом/функцией необходимо приписать тестирующий код
В файл с тестом (1.in) кладётся программа на питоне, в которой используется тестируемый класс или функция
В файл с эталонным выводом попадает результат этого print()
Пример:
prog.py
check/1.in
print(C().A+42-C().fun(33))
check/1.out
9